在组织的显示视图上时,我可以单击图像转到新视图,为该组织创建新成员(关联 1:many 表示组织:成员)。单击图像时,我想将organization_id传递给控制器,以便它自动成为为其创建新成员的组织。怎么做?
包含在成员控制器中:
def new
@organization = Organization.find(params[:id])
@member = @organization.members.build
def end
组织显示视图中的链接:
<%= link_to image_tag("add.png", title: "add"), new_member_path(@organization) %>
现在单击链接会产生错误:
Couldn't find Organization with 'id'=
因此,它似乎没有将id传递给控制器。我做错了什么?
将
参数传递为 :organization_id:
new_member_path(organization_id: @organization.id)
然后将控制器更改为使用新参数:
@organization = Organization.find(params[:organization_id])
通过嵌套资源,当您正确格式化new
链接时,可以自动传递Organization
id
。
请参阅嵌套资源。这样做应该创建一个类似这样的路由:
new_organization_member GET /organizations/:id/members/new(.format)
@infused的答案是另一种方法。