我希望显示过去7天内投票最多的项目 这样我就可以获得最受欢迎的项目(所有时间):
@items = Item.all.order(cached_votes_up: :desc)
item.rb的
class Recipe < ActiveRecord::Base
belongs_to :user
acts_as_votable
end
有没有办法在上周获得最受欢迎的项目?
感谢任何帮助。感谢。
答案 0 :(得分:1)
基于我刚才使用宝石时的记忆,我这样做。
您有两个表items
和votes
,如果使用了acts_as_votable
gem,默认情况下会创建投票。
将两张桌子加在一起
@join_table = Item.joins('INNER JOIN votes ON votes.votable_id = items.id')
//我在使用gem时没有使用cached_votes_up
。我不知道它存储了什么,它是什么。如果有效,请继续下面。
加入表后,现在我们需要过滤掉过去7天评分的项目。
@filter_table = @join_table.order(cached_votes_up: :desc).where(:updated_at => 7.day.ago..Time.now)
您可能需要稍微修改,因为我没有确切的表属性。 如果这是你想要的,请告诉我。