Мой url выглядит примерно так username/project/project_members
Пользователь имеет много проектов, также существует богатое множество отношений между пользователями и проектами через членов проекта. Подумайте об этом как github, у пользователя много репозиториев, и у репо есть много соавторов в качестве пользователей.Сильные параметры
Теперь, чтобы сделать новый объект 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 как скрытую, и я нахожу @project с моим url (см. Выше). Моя форма выглядит так:
- @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 как скрытое поле. Должен ли я наклоняться назад, чтобы я мог использовать сильные параметры?
gotcha! Благодарю. – sonalkr132