使用Ruby on Rails + PostgresQL显示2周或更长时间

时间:2017-11-16 01:38:54

标签: ruby-on-rails ruby postgresql views

之前已经讨论过这个话题,但我是新的并试图理解。我的应用程序旨在存储项目的位置,因为时间很重要,我想创建一个视图链接,只显示两周或更长的地方。我理解我应该在模型中创建一个类似于下面的方法,但我对此代码感到困惑。我一直在努力寻找阅读材料以便更好地理解。主页显示所有地方,但我想要一个也显示2周或更长时间的链接。

除了帮助,我还是喜欢任何好的读物,以帮助我更好地理解。非常感谢SO!

def self.recent_places
  Place.select("p.*, COUNT(v.id) AS count").where("post.created_at >= 2.week.ago.utc")
end

这是GitHub的链接。 https://github.com/Mbartlett413/DumpStack

2 个答案:

答案 0 :(得分:2)

我建议使用范围超类方法,尽管两个大致相同:

scope :older_than, ->(time) { where("created_at < ?", time) }

使用:

Post.older_than(2.weeks.ago)
Post.older_than(1.month.ago)

在这里:http://guides.rubyonrails.org/active_record_querying.html#passing-in-arguments

答案 1 :(得分:0)

我实际上只是为自己的应用解决了这个问题,这是我在模型中使用的方法:

scope :recent_places, -> {
  where(Place.arel_table[:created_at].lt(2.weeks.ago))
}