Ruby on rails 3.2 基于变量的rails3路由语法
我有 资源:静态页面 该模型具有属性,其存在性经过验证:category_id和path 我正在尝试将显示页面设置为/category.name/path 无法识别以下语法Ruby on rails 3.2 基于变量的rails3路由语法,ruby-on-rails-3.2,routes,Ruby On Rails 3.2,Routes,我有 资源:静态页面 该模型具有属性,其存在性经过验证:category_id和path 我正在尝试将显示页面设置为/category.name/path 无法识别以下语法 match 'staticpage/:id', :to => redirect("/%{category.name/%{path}") 返回未知操作 此处添加的评论是关于第一个答案(评论“目前不接受…”) 也许我把自己弄糊涂了,因为模型和控制器的名字是一样的。。。无论如何,它是否应该与“staticpages/:
match 'staticpage/:id', :to => redirect("/%{category.name/%{path}")
返回未知操作
此处添加的评论是关于第一个答案(评论“目前不接受…”)
也许我把自己弄糊涂了,因为模型和控制器的名字是一样的。。。无论如何,它是否应该与“staticpages/:id”不匹配
但是我看不出在控制器中我如何能够声明@staticpage.category.name和@staticpage.path以上的内容来生成新路由
此外,由于我必须避免践踏其他模型/控制器,我需要保持某种形式的理智(当page不是控制器且路径验证为唯一时):“page/category.name/path”您不能在
routes.rb中使用重定向()
路由匹配到控制器#操作
,而不是型号
您需要创建一个具有适当操作的控制器,并将其与路由匹配
大概是这样的:
match 'staticpage/:id', to: staticpages#show
这将把任何匹配的/staticpages/
重定向到staticpages
控制器的show
操作
然后在show
操作中(这将是staticpages
控制器中的一种方法),您可以从params
散列中获取:id
,并使用它来呈现/重定向/etc
资料来源: