Ruby on Rails:你如何为命名路由添加前缀?

时间:2010-12-17 03:10:05

标签: ruby-on-rails ruby

我希望生成一个附加到指定路由本身的前缀的链接。像这样显示路径" / old / recipes":

recipes_path(:prefix => "old/")  # the correct way should show "/old/recipes"

我不想触摸routes.rb文件,但修改了附加前缀的命名路由。这可能吗?你会怎么做呢?

编辑:我使用Rails 3.添加可选前缀的原因是我也想使用普通的recipes_path。所以我想同时使用" / recipes"和" / old / recipes"。

1 个答案:

答案 0 :(得分:11)

如果你不想触摸路径文件,你会遇到很多痛苦,主要是因为这是Rails在试图弄清楚路线走向时会引用的内容。我不知道另一种方法,所以当你确信这是一个好主意时,这里是 config / routes.rb 代码:

scope :path => "old" do
  resources :recipes
end

现在,当您转到recipes_path时,它会转到/old/recipes,但这可能不是您所追求的。如果是这种情况,那么您可能想要查看as末尾的scope选项:

scope :path => "old", :as => "old" do
  resources :recipes
end

在这种情况下,此路线现在为old_recipes_path,仍然路由到/old/recipes