したがって、これは非常に悪いフォームである可能性があります。私はレールに比較的慣れていません。わからない。
私にはプロジェクト モデルがあり、多くの所有者 (すべてを読み書きできる人) と多くの協力者 (何かを読み書きできる人) が必要です。
私の project.rb ファイルには次のものがあります。
has_many :project_user_relationships, :dependent => :destroy
has_many :collaborators, :through => :project_user_relationships, :source => :user
has_many :project_owners_relationships, :class_name => "ProjectUserRelationship", :foreign_key => "project_id",
:before_add => Proc.new { |p,owner_r| owner_r.owner = true }, :conditions => "`project_user_relationships`.owner = true"
has_many :owners, :through => :project_owners_relationships, :source => :user
したがって、これはかなりうまく機能します。新しい所有者を追加すると、そのユーザーは私が望むコラボレーターでもあります。解決方法がわからない問題は、既にコラボレーターであるユーザーを所有者として追加すると、結合テーブルに 2 つのエントリが作成されることです。私はそれがすでにそこにある記録を修正することを望みます. それ、どうやったら出来るの?