[英]Print date from yaml to ruby using middleman
我正在使用Middleman制作漫画书收集应用程序。
我能够从YAML文件中获取不同的信息,并将其呈现为.erb文件。
现在,我使用yaml创建了一个日期,如下所示:
date: 1977-08-01
我尝试在网上浏览如何以不同的格式呈现它,但是却找不到任何内容...
例如,我的yaml文档中有一个标题字段,如下所示:
title: "Uncanny X-Men"
所以我使用以下代码将其呈现在我的erb文档中:
<%= comic["title"] %>
但是,比方说,我如何从日期开始打印月份? 不可能找到任何类型的信息...我确实获得了如何在ruby或yaml中使用日期的不同方面,但是没有如何将日期从yaml转换为ruby :(
谢谢!
您需要将YAML文件中的date
值解析为Ruby日期类,首先请确保将YAML文件中的日期值括在引号中,如下所示:
date: '1977-08-01'
然后解析:
<%= Date.parse(comic["date"]) %>
并获得月份,您可以这样添加.month
:
<%= Date.parse(comic["date"]).month %>
如果您想对自己的月份进行更多的自定义设置(如果您需要使用strftime的话) ,那么该数字将为8
,如果是这样,您甚至不需要使用.month
。
理想的情况是,您可以在config.rb
创建一个助手
# Methods defined in the helpers block are available in templates
helpers do
def format_date(date_txt)
date = Date.parse(date_txt)
date.strftime("%B")
end
end
然后,您可以在模板中调用它,如下所示:
<%= format_date(comic["date"]) %>
希望对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.