目前我的应用正在使用acts_as_votable gem,而default_scope设置为按最多投票顺序排列帖子。所有投票都被缓存,如acts_as_votable文档中所示。但是一段时间之后我的内容会变得陈旧,所以我想在过去24小时内按照大多数投票排序用户帖子,类似于reddit。
class Post < ActiveRecord::Base
acts_as_votable
default_scope { order(:cached_votes_up => :desc) }
end
此外,这里是voting表的schema.rb,它在字段中创建。
create_table "votes", force: :cascade do |t|
t.integer "votable_id"
t.string "votable_type"
t.integer "voter_id"
t.string "voter_type"
t.boolean "vote_flag"
t.string "vote_scope"
t.integer "vote_weight"
t.datetime "created_at"
t.datetime "updated_at"
end
提前致谢。随意提出任何问题。
答案 0 :(得分:0)
class Post < ActiveRecord::Base
acts_as_votable
default_scope { where(:created_at => ((Time.current - 24.hours)..Time.current)) }
default_scope { order(:cached_votes_up => :desc) }
end
这样的事情。您可以拥有多个default_scope并将它们合并。