【发布时间】:2015-06-24 08:38:56
【问题描述】:
我的网址看起来像这样username/project/project_members
用户有很多项目,用户和项目之间也通过项目成员建立了丰富的多对多关系。可以把它想象成 github,一个用户有很多 repo,而一个 repo 有很多合作者作为用户。
现在要创建一个新的 ProjectMember 对象,我可以进行批量分配:
ProjectMember.create(user_id: params[:user_id], project_id: @project.id, role: params[:project_member][:role])
或者我可以这样做:
@project.members << @member
@project.member_project(role: params[:project_member][:role])
如您所知,在这两种情况下,我都需要先找到@project 和@member 对象。要找到@member,我已经将 user_id 作为隐藏文件传递,我用我的 url 找到了@project(见顶部)。我的表格如下:
- @users.each do |user|
= form_tag user_project_project_members_add_path(@project.user, @project) do
= label_tag 'username', user.username
= hidden_field_tag "user_id", user.id
= select('project_member', 'role', roles)
= submit_tag 'Add', :name => nil
这种代码使强参数毫无用处。即我没有使用它来制作我的新 project_member 实例。 我应该担心我没有使用强参数吗?我想其中一个技巧可能是我也将 project_id 作为隐藏字段传递。我应该向后弯腰以便使用强大的参数吗?
【问题讨论】:
标签: ruby-on-rails has-many-through strong-parameters