1

状況はこのように..

class Organization < ActiveRecord::Base

  has_many :role_memberships
  has_many :roles
  has_many :users, :through => :role_memberships, :uniq => true

end

class User

 has_many :role_memberships
  has_many :organizations, :through => :role_memberships, :uniq => true
  has_many :roles, :through => :role_memberships, :uniq => true 

end

class RoleMembership < ActiveRecord::Base

  belongs_to :organization
  belongs_to :role
  belongs_to :user

end

class Role < ActiveRecord::Base
  belongs_to :organization
  has_many :role_memberships
  has_many :users, :through => :role_memberships, :uniq => true
end

問題は、rolemembership テーブルに 3 つの外部キーすべてを入力する方法です。org.users.push(u) を実行すると、レコードが作成されますが、role_id は除外されます...

4

1 に答える 1

1

この場合、おそらく次のように RoleMembership オブジェクト自体を作成します。

RoleMembership.create(:organization_id => org.id, :role_id => role.id, :user_id => user.id)
于 2011-04-12T06:34:35.020 に答える