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

问题是我如何填充角色成员表中的所有三个外键..当我执行 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 回答