如何按日期和时间对帖子进行排序?

时间:2012-03-25 01:19:25

标签: ruby-on-rails ruby rack

我正在运行一个支持toto的博客,我正在尝试按日期对帖子进行正确排序(如果我在一天内发布多次,那么这些文章会按字母顺序排序)。现在在我的config.ru中我有# set :date, lambda {|now| now.strftime("%d/%m/%Y") }日期的基本设置和时间# set :time, lambda {|now| now.strftime("at %H:%I%p") } 的设置

在我的layout.rhtml文章中排序如下:<% articles.select {|a| a[:date] <= Date.today}[0..4].each do |article| %>我知道我需要在某处添加:time,但不知道如何。

1 个答案:

答案 0 :(得分:1)

在文章中添加一个名为time的字段:

title: The Wonderful Wizard of Oz
author: Lyman Frank Baum
date: 1900/05/17
time: 12:30:00 PST

Dorothy lived in the midst of the great Kansas prairies, with Uncle Henry,
who was a farmer, and Aunt Em, who was the farmer's wife.

在服务器块之前修补Article类:

require 'time'

class Article  
  def timestamp
    self[:timestamp] ||= Time.parse("#{self[:date].strftime("%Y-%m-%d")} #{self[:time]}")
  end
end  

toto = Toto::Server.new do

现在,在您的布局中,您可以使用timestamp方法进行排序:

<% articles.select {|a| a.timestamp <= Time.now}[0..4].each do |article| %>