在Rails 3中自定义命名路由

时间:2013-10-25 19:28:24

标签: ruby-on-rails

我想在资源成员上创建一个资源丰富的路由,但我似乎无法找到创建我想要的命名路由的语法。

namespace :admin
  resources :foobars do
    get :attribute, on: :member, as: :attribute
  end
end

这将提供一个名为:

的路由方法
attribute_admin_foobar_path

我想说:

admin_foobar_attribute_path

我能想到的另一种方法是拒绝resources块并创建一条路线:

namespace :admin
  resources :foobars
  get 'foobars/:id/attribute', as: :foobar_attribute
end

但是,我不喜欢这种方法,因为它迫使我复制已经存在的路由的路由结构......不是很干。

有没有办法可以在使用resources路由块的同时创建我想要的路由名称?

1 个答案:

答案 0 :(得分:0)

如果你这样做:

  namespace :admin do
    resources :foobars do
      get :attribute
    end
  end

你会得到:

admin_foobar_attribute GET /admin/foobars/:foobar_id/attribute(.:format)                    admin/foobars#attribute

那是admin_foobar_attribute_path