0

私は次のモデルを持っています

Class User
  has_many :memberships

Class Membership
  belongs_to :user

メンバーシップテーブルには、2つの列とがuser_idありorganization_idます。ただし、organization_idはユーザーIDでもあります。

次のように、どのように関連付けを具体的に行うことができますか。

@user.organizationsこのユーザーがメンバーになっている組織(他のユーザー)のリストを返します。

4

2 に答える 2

2

これを行う正しい方法は、次のように3つのモデルを作成することだと思います。

#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
于 2013-02-23T15:56:32.843 に答える
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
于 2013-02-23T20:07:29.107 に答える