我正在运行一个支持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
,但不知道如何。
答案 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| %>