假设我有两张桌子:
Users
user_id name
Tags
tagger_id tagged_id
这描述了一种可以
的情况我正在尝试设置的模型是:
class User < ActiveRecord::Base
has_many :tags, :foreign_key => "tagger_id"
end
class Tag < ActiveRecord::Base
belongs_to :tagger, :class => "User"
belongs_to :tagged, :class => "User"
end
我正在尝试将其设置为当我这样做时:
user.tags
它返回一个User对象列表。使用我当前的设置,它只返回带有ID而不是对象的实际Tag记录。如何设置它以返回用户对象列表?
我尝试使用:
has_many :tags, :foreign_key => "tagger_id", :source => :tagged
但它不起作用。
答案 0 :(得分:0)
你正在寻找has_many:通过。
class User < ActiveRecord::Base
has_many :tags, :foreign_key => "tagger_id"
has_many :tagged, :through => :tags
end
然后user.tagged
应该会为您提供所需的用户列表。