计算投票评论

时间:2011-02-25 15:07:32

标签: ruby-on-rails ruby-on-rails-3

我有3个模特

用户

has_many :comments
has_many :votes

评论

belongs_to :user
has_many :votes

表决

belongs_to :user
belongs_to :comment

我想查找用户是否有任何投票评论。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

user.comments.joins(:votes).select("distinct comments.id, comments.*")

或者您可以使用范围

class Comment < ActiveRecord::Base
  belongs_to :user
  has_many :votes
  scope :with_votes, joins(:votes).select("distinct comments.id, comments.*")
end

#=> user.comments.with_votes

答案 1 :(得分:1)

您还可以在评论模型中为其拥有的投票数添加计数器缓存。然后你可以这样做:

user.comments.where("vote_count > 0")

或者更好的是,您可以在Comment模型上定义一个方法:

def with_votes  
  where("vote_count > 0")  
end

然后你可以打电话:

user.comments.with_votes