Rails中的成员关联加入模型

时间:2013-02-23 15:02:25

标签: ruby-on-rails ruby-on-rails-3 activerecord

我有以下型号

Class User
  has_many :memberships

Class Membership
  belongs_to :user

会员资格表有两列,user_idorganization_id。 但是organization_id也是用户ID。

我如何具体化关联以便:

@user.organizations返回该用户所属的组织(其他用户)列表。

2 个答案:

答案 0 :(得分:2)

我认为这样做的正确方法是创建三个模型如下:

#user.rb
class User < ActiveRecord::Base
  has_many :memberships
  has_one :organization
end

#organization.rb
class Organization < ActiveRecord::Base
  attr_accessible :user_id
  belongs_to :user
  has_many :memberships
end

#membership.rb
class Membership  < ActiveRecord::Base
  attr_accessible :user_id, :organization_id
  belongs_to :user
  belongs_to :organization
end

答案 1 :(得分:0)

想出来:

class Membership < ActiveRecord::Base
  belongs_to :user
  belongs_to :organization, class_name: "User"
end

class User < ActiveRecord::Base
  has_many :memberships
  has_many :organizations, through: :memberships
end