ruby-on-rails - ruby rails : How do you prefix named routes?

标签 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”。

最佳答案

如果您不想触及路由文件,您将会遇到很多麻烦,主要是因为 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/

相关文章:

javascript - 基于 select (Rails) 分别获取并显示数据库行中的所有值

ruby - 如何使用 Ruby 1.9.3 在 Aptana 3 中获得调试支持?

ruby-on-rails - 访问关联集合中的下一条记录

javascript - 可能的?记录嵌入 YouTube 视频的播放次数

mysql - Ruby on Rails 表单数据未保存

ruby-on-rails - 如何在保持搜索逻辑功能的同时覆盖/添加到 method_missing?

ruby-on-rails - 带有乘客的 Controller 中的 Binding.pry

javascript - Ember 应用程序请求 Rails 应用程序——跨域?

ruby - 将属性方法委托(delegate)给父对象

ruby - "has_many"关联中第一行的 SQL 语句