2013-04-09 72 views
0

我目前有三个级别的页面,第一,第二和第三级。他们每个人都有一个参考e.g:动态创建路由 - 导轨

/firstlevel

/firstlevel/secondlevel

/firstlevel/secondlevel/thirdlevel

每一第三级页只链接到一个二级页面和每一个二级页面只链接到一个第一级页面。但是,目前,您可以输入任何第一个第二和第三个参考,第三个等级页仍然会显示。我需要在某处进行验证,以便只有一种方法可以进入第三级页面;通过使用正确的第一和第二级参考。

这是我在我的路线文件:

match "/:reference" => "service#firstlevel" 
match "/:reference/:reference" => "service#secondlevel" 
match "/:reference/:reference/:reference" => "service#thirdlevel" 
+0

您的参考资料是否独一无二?如果是的话,这是直截了当的。请添加更多详细信息。 – tamizhgeek 2013-04-09 10:32:39

+0

我不确定我完全理解你..但每个页面都有独特的参考,是的。 – user1738017 2013-04-09 10:33:20

+0

然后在服务#thirdlevel动作检查有效的第一和第二级别引用,并且仅当它们存在时显示第三级别页面。 – tamizhgeek 2013-04-09 11:37:52

回答

0

加入到这个我控制器对于每种方法:

if request.fullpath == ("/#{@s.firstlevel.reference}/#{@s.reference}") 

else 
    render :action => "error404" 

可能不是最好的办法。

0

这会给你/公司/民族/工作

resource :companies do 
    resource :people do 
    resource :jobs 
    end 
end 

在你的路由