を通じて、私は好きのためのユーザーのリストを取得するにはどうすればよい複数にhas_many:オブジェクトモデルで
has_many :likes
has_many :hates
has_many :users, :through => :likes
has_many :users, :through => :hates
はありますか?例えば。 object.users < ---好き嫌いでどのように指定すればいいですか?
を通じて、私は好きのためのユーザーのリストを取得するにはどうすればよい複数にhas_many:オブジェクトモデルで
has_many :likes
has_many :hates
has_many :users, :through => :likes
has_many :users, :through => :hates
はありますか?例えば。 object.users < ---好き嫌いでどのように指定すればいいですか?
これらの2つの異なる関連付けに異なる名前を付ける必要があります。
has_many :likes
has_many :hates
has_many :likers, :through => :likes, :source => :user
has_many :haters, :through => :hates, :source => :user
についてあなたが好きなことを何をすることができます。
has_many :user_likes, :through => :likes, :class_name => 'User'
私があまりにもソースを追加する必要があるようです。そうでなければ、Railsは好き嫌いを探しています。 「`::through`は、クエリを実行するを通じて関連付けを指定します[..。あまりにも、私が考えたものだが、(ActiveRecordは::協会::クラスメソッドで)` has_many`のドキュメントは言う
has_many :likes
has_many :hates
has_many :likers, :through => :likes, :class_name => 'User', :source => 'user'
has_many :haters, :through => :hates, :class_name => 'User', :source => 'user'
。] ':class_name'、':primary_key'、 ':foreign_key' **のオプションはアソシエーションがソースリフレクションを使用するので無視されます。 - それで、 ':class_name'は何もしません。そうでしょうか? – fanaugen
あなたが正しいと思いますが、ソースアソシエーションを参照するドキュメンテーションに準拠するようにサンプルを更新しました。そこから、それがUserオブジェクトであると推測できます。 –
':source =>:user'は':source =>:users'でなければなりません。 –