我有这个嵌套资源:
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
我不确定这意味着什么 - 我有一个并且属于用户和服务之间的许多关系,我试图将现有用户与服务相关联
答案 0 :(得分:2)
如果此操作是成员操作或集合操作,您需要告诉rails,从您提到的要使用的网址中,它是成员操作:
resources :services do
resources :users do
member do
put :assign
end
end
end