2012-09-12 80 views
0

我有這種多態關聯,用戶可以有很多評論,學校可以有很多評論,評論可以有很多評論(或者在我的命名案例回覆中):找到多態評論模型中的評論的回覆者

class Comment < ActiveRecord::Base 
    attr_accessible :content 
    has_many :replies, :as => :commentable, :class_name => "Comment" # replies to comments 

    belongs_to :commentable, :polymorphic => true 
    belongs_to :commentor, :class_name => "User", :foreign_key => "user_id" 
end 

class User < ActiveRecord::Base 
    has_many :comments, :as => :commentable 
    has_many :commentors, # all users who commented on a user 
    :through => :comments, 
    :source => :commentor 
end 

class School < ActiveRecord::Base 
    has_many :comments, :as => :commentable 
    has_many :commentors, # all users who commented on a school 
    :through => :comments, 
    :source => :commentor 
end 

在用戶,我可以檢索所有誰使用@user.commentors用戶評論。學校也是如此,即@school.commentors

對於評論模型,我希望在評論模型中實現同樣的功能,在那裏我可以找到所有評論者(或者我猜測評論者)的評論;然而,我不知道自has_many後創建了什麼樣的關聯:通過關聯不會像用戶和學校模型那樣工作。

+0

工作的呢? has_many:reply_commentors,:through =>:reply,:source =>:commentor – weexpectedTHIS

+0

D'oh是的,這是有效的。哇,我很愚蠢。謝謝。 – Mavoir

+0

如果您想接受,我添加了我的評論作爲答案。 – weexpectedTHIS

回答

0

使用此:

has_many :reply_commentors, :through => :replies, :source => :commentor