我希望生成一个链接,该链接的前缀附加到命名路由本身。像这样显示路径“/old/recipes”:
recipes_path(:prefix => "old/") # the correct way should show "/old/recipes"
我不想动routes.rb文件,而是修改带前缀的命名路由。这可能吗?您将如何正确地做到这一点?
编辑: 我正在使用 Rails 3。添加可选前缀的原因是我也想使用普通的 recipes_path。所以我想同时使用“/recipes”和“/old/recipes”。
最佳答案
如果您不想触及路由文件,您将会遇到很多麻烦,主要是因为 Rails 在试图找出路由的去向时会引用该文件。我不知道还有其他方法可以做到这一点,所以当您确信这是一个好主意时,这里是 config/routes.rb 代码:
scope :path => "old" do
resources :recipes
end
现在,当您路由到 recipes_path
时,它将转到 /old/recipes
,尽管这可能不是您想要的。如果是这种情况,那么您可能希望在此 scope
末尾删除 as
选项:
scope :path => "old", :as => "old" do
resources :recipes
end
在这种情况下,这条路线现在是 old_recipes_path
,仍然路由到 /old/recipes
。
关于ruby-on-rails - ruby rails : How do you prefix named routes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4467334/