Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 动态创建路线-轨道_Ruby On Rails_Dynamic_Routes - Fatal编程技术网

Ruby on rails 动态创建路线-轨道

Ruby on rails 动态创建路线-轨道,ruby-on-rails,dynamic,routes,Ruby On Rails,Dynamic,Routes,我目前有三个页面级别,第一、第二和第三级别。它们各有一个参考,例如: /firstlevel /firstlevel/secondlevel /firstlevel/secondlevel/thirdlevel 每三级页面只链接到一个二级页面,每二级页面只链接到一个一级页面。然而,此时,您可以输入任何第一、第二和第三个参考,第三级页面仍将显示。我需要在某个地方进行一些验证,以便只有一种方法可以进入第三级页面;通过使用正确的一级和二级参考 这是我的路由文件中的内容: match "/:refere

我目前有三个页面级别,第一、第二和第三级别。它们各有一个参考,例如:

/firstlevel

/firstlevel/secondlevel

/firstlevel/secondlevel/thirdlevel

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

这是我的路由文件中的内容:

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

这将给你/公司/人/工作

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

在您的路线上

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

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

else
  render :action => "error404"

可能不是最好的方法。

你的推荐信是独一无二的吗?如果是的话,这是直截了当的。请补充更多细节。我不确定我是否完全理解你。。但每个页面都有一个唯一的引用,是的。然后在服务第三级操作中检查第一级和第二级引用是否有效,并且仅当它们存在时才显示第三级页面。