0

モデルユーザーがいます。ユーザーはオブジェクトを所有できます。ユーザーはオブジェクトを相互に送信することもできます。@user.senders にアクセスして、そのユーザーへのすべての一意の送信者を取得できるように、ユーザーへのすべての「送信者」にアクセスしようとしています。これは私のセットアップです:

class Object < ActiveRecord::Base
  belongs_to :user

  has_many :senders, through: :object_relationships, source: :user, class_name: "User"
  has_many :object_relationships
end

class User < ActiveRecord::Base
  has_many :owned_objects, inverse_of: :user

  has_many :objects, through: :object_relationships
  has_many :object_relationships
end

class ObjectRelationship < ActiveRecord::Base
  belongs_to :user
  belongs_to :object
end

何か案は?

4

1 に答える 1

0
class Gift < ActiveRecord::Base
  belongs_to :user

  has_many :gift_senders    
  has_many :senders, through: :gift_senders, source: :user
end

class User < ActiveRecord::Base
  has_many :sent_gifts, class_name: 'Gift', foreign_key: :user_id

  has_many :gift_senders    
  has_many :accepted_gifts, through: :gift_senders, source: :gift
end

class GiftSender < ActiveRecord::Base
  belongs_to :user
  belongs_to :gift
end

混乱を避けるために、モデルの名前をギフトに変更しました。

于 2013-02-03T00:05:49.887 に答える