在Ruby on Rails上过去24小时内最喜欢的帖子排序

时间:2015-07-29 20:19:05

标签: ruby-on-rails ruby sorting psql

目前我的应用正在使用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

提前致谢。随意提出任何问题。

1 个答案:

答案 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并将它们合并。