我有一个用户,一个微博和一个响应模型。
用户有许多微信和许多响应。
微博有标签使用的行为作为塔格特宝石。
我需要找到一个用户有多少响应,对贴有特定标签的微博。例如,要弄清楚的是,用户1对“锻炼”微博的回复有多少次?
我缺少一些基本的ruby语法和关系逻辑。这就是我在我的用户身上所拥有的
这是一种用户模型方法。
def user_responses_on_topic(interest)
microposts = Micropost.tagged_with(interest, :on => :tags )
count = 0
microposts.each do |micropost|
responses = micropost.responses.size
count = count + responses
end
count
end但一定有更好的铁轨方法吗?
发布于 2015-05-01 10:56:29
尝试这样的方法,如果#tagged_with方法返回一个ActiveRecord::Relation对象,我不知道您是否需要一个:user_id,但是您的代码没有提示,所以我也这样做了。
Response.joins(:micropost).merge(
Micropost.tagged_with(interest, on: :tags)
).counthttps://codereview.stackexchange.com/questions/88390
复制相似问题