Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:具有多个:通过第三个外键赋值_Ruby On Rails_Ruby On Rails 3_Activerecord - Fatal编程技术网

Ruby on rails Rails:具有多个:通过第三个外键赋值

Ruby on rails Rails:具有多个:通过第三个外键赋值,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,Activerecord,我有以下代码,当运行该代码时,它会在表project_上创建/删除记录,用户使用的是一个具有多个through关系的表,这很好 @project.users = @account.users.find(params[:users_ids]) 但是,我现在需要在中间的project\u users表上设置第三个外键值,名为role\u id 是否有任何建议可以在上面代码的同时有效地设置角色id 我提出了一些解决方案,比如下面的一个,但我不喜欢在只需要更新的情况下删除所有记录的想法 users

我有以下代码,当运行该代码时,它会在表project_上创建/删除记录,用户使用的是一个具有多个through关系的表,这很好

@project.users = @account.users.find(params[:users_ids])
但是,我现在需要在中间的project\u users表上设置第三个外键值,名为role\u id

是否有任何建议可以在上面代码的同时有效地设置角色id

我提出了一些解决方案,比如下面的一个,但我不喜欢在只需要更新的情况下删除所有记录的想法

  users = @account.users.find(params[:users_granted].keys)
  @project.users = []
  users.each do |user|
    @project.project_users.create(:user_id => user.id, :project_role_id => params[:users_granted][user.id.to_s])
  end
欢迎任何想法/建议,很可能我的想法完全错误

谢谢,
斯科特

这就是你要找的吗?