0

アクティブレコードで自己参照関係を作成するために、rails-cast#163 http://railscasts.com/episodes/163-self-referential-associationに示されている自己参照モデルに従いましたが、これは好きではありません。モデルは、friendshipinverse_friendshipsを作成する必要があるため、次のようなことはできません。

私のperson.rbで

class Person 
  has_many :friendships
  has_many :friendships, :foreign_key => "friend_id"
  has_many :friends, :through => :friendships
  has_many :friends, :through => :friendships, :source => :person
end

そして私のfriendship.rbで

class Friendship
  belongs_to :person
  belongs_to :friend, :class_name => "Person"
end
4

1 に答える 1

2

いいえ、同じような名前の関連付けを持つことはできません。これらの名前はモデル内で一意である必要があります。そうでなければ、ActiveRecordはあなたがあなたのコードにfriendshipsいるときにあなたが何を意味するのかをどのように知るのでしょうか?@user.friendships

于 2013-02-13T15:50:30.927 に答える