我有3个模特
用户
has_many :comments
has_many :votes
评论
belongs_to :user
has_many :votes
表决
belongs_to :user
belongs_to :comment
我想查找用户是否有任何投票评论。任何帮助将不胜感激。
答案 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