假设我有 2 张表:
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
它返回一个用户对象列表。 使用我当前的设置,它只返回带有 id 而不是对象的实际标签记录。 如何设置它以返回用户对象列表?
我尝试使用:
has_many :tags, :foreign_key => "tagger_id", :source => :tagged
但它没有用。
你正在寻找has_many :through。
class User < ActiveRecord::Base
has_many :tags, :foreign_key => "tagger_id"
has_many :tagged, :through => :tags
end
然后user.tagged
应该给你你想要的用户列表。