Rails - 如何向某些资源添加路由

时间:2015-08-27 01:06:04

标签: ruby-on-rails ruby ruby-on-rails-4

某些路由适用于CRUD操作,例如客户端,phone_numbers和产品。我有独特的索引'许多模型的属性。例如,在客户端,我可以拥有"电子邮件"或者"用户名",而在产品中,我可以拥有" serialnumber",而在PhoneNumber中,实际的"数字"可能是唯一索引。

因此,我的ApplicationController中有方法在POST请求中接收JSON,其中包含属性名称和属性值。服务器检查该值是否存在,并通知用户输入是否有效或值是否存在。

因此,对于这些模型,我必须声明一条指向" unique"方法,如下面的

的routes.rb

resources :clients
resources :phone_numbers
resources :products
post 'clients/unique' => 'clients#unique'
post 'phone_numbers/unique' => 'phone_numbers#unique'
post 'products/unique' => 'products#unique'

我的问题是:我可以"分组"这些路线没有前缀(与命名空间范围不同),只需添加帖子' unique'给他们?伪代码就像这样

伪代码

group alias: 'modelsWithUniqueAttrs'
    resources :clients
    resources :phone_numbers
    resources :products

    add_route 'unique'
end

1 个答案:

答案 0 :(得分:1)

试试这个

resources :clients, :phone_numbers, :products do
  collection do
    post :unique
  end
end

或者

unique_routing = Proc.new do
  collection do
    post :unique
  end
end
resources :clients, &unique_routing
resources :phone_numbers, &unique_routing
resources :products, &unique_routing

或者

unique_routing = Proc.new do
  collection do
    post :unique
  end
end
resources :clients, :phone_numbers, :products, &unique_routing