动态创建路由 - rails

时间:2013-04-09 10:11:33

标签: ruby-on-rails dynamic routes

我目前有三个级别的页面,第一级,第二级和第三级。他们每个都有一个参考,例如:

/firstlevel

/firstlevel/secondlevel

/firstlevel/secondlevel/thirdlevel

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

这是我在路线文件中的内容:

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

2 个答案:

答案 0 :(得分:0)

这将为您/公司/人员/工作

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

在您的路线

答案 1 :(得分:0)

为每种方法添加到我的控制器中:

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

else
  render :action => "error404"

可能不是最好的做事方式。