需要将现有用户添加到Project_Model.User

时间:2015-11-28 03:27:37

标签: ruby-on-rails ruby

所以我有一个项目管理系统,其中用户和项目有一个has_and_belongs_to_many关联。登录用户可以创建项目,它只列出他们所属的项目。

这是我的问题,在创建项目时,我需要它将已创建的,当前登录的创建项目的用户添加到此项目的project_model.user数据库。

我该怎么做?我会使用像project_model.user.create!(current_user)?

这样的东西

这基本上是我在这个项目中必须处理的,能够将数据库中已有的用户添加到某些项目中,特别是添加到他们的project_models.users数据库中。

(是的,project_model是它应该只是项目的实际名称。它是一个小组项目而且它不是我的决定)

1 个答案:

答案 0 :(得分:1)

当你创建项目时,我想你正在做这样的事情:

ProjectModel.create(project_model_params)

您可以从current_user的项目协会构建项目,而不是以这种方式创建项目:

@new_project = current_user.project_models.build(project_model_params)

if @new_project.save
   ...

这样,新项目将在最初保存时与该用户建立关联。

更新

假设您已经有一个项目并且只想添加一个新用户,您可以按照以下步骤进行:

# First, find the project you want to add users to
@existing_project = ProjectModel.find(params[:id])

# Next, find the user you want to add 
@user = User.find(params[:user_id]) # again - find the user however you like

# Finally, add the user to the project
@existing_project.users << @user 

# note that this will auto-save the association.
# There is no need to call @existing_project.save afterwards