多个has_many:通过

时间:2012-03-02 05:25:02

标签: ruby-on-rails-3 activerecord

在对象模型中,我有

has_many :likes
has_many :hates
has_many :users, :through => :likes
has_many :users, :through => :hates

如何获取喜欢的用户列表?例如。 object.users< ---但是如何通过喜欢或讨厌来指定?

3 个答案:

答案 0 :(得分:6)

您需要为这两个不同的关联提供不同的名称。

怎么样?
has_many :likes
has_many :hates
has_many :likers, :through => :likes, :source => :user
has_many :haters, :through => :hates, :source => :user

答案 1 :(得分:1)

似乎我也需要添加源代码。如果不是Rails会在喜欢中寻找喜欢的人。

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'

答案 2 :(得分:0)

你可以这样做:

has_many :user_likes, :through => :likes, :class_name => 'User'