Rails嵌套资源在控制器中不起作用

时间:2015-03-01 03:44:34

标签: ruby-on-rails associations nested-resources

我有这个嵌套资源:

resources :services do
  resources :users  do
    put "assign" => "services#users#assign", as: :assign
  end 
end

我的表单包含:

<%= button_to 'submit', service_user_assign_url(service.id, abstractor.id), method: :put %>

这会生成以下网址,对我来说很好看:

http://localhost:3000/services/1/users/2/assign

以下是我的服务控制器:

def assign
  @service = Service.find(params[:service_id])
  @service.users << User.find(params[:user_id])
  redirect_to dashboards_path
end

但是我收到了这个错误:

 The action 'users' could not be found for ServicesController

我不确定这意味着什么 - 我有一个并且属于用户和服务之间的许多关系,我试图将现有用户与服务相关联

1 个答案:

答案 0 :(得分:2)

如果此操作是成员操作或集合操作,您需要告诉rails,从您提到的要使用的网址中,它是成员操作:

resources :services do
  resources :users  do
    member do
      put :assign
    end
  end 
end