繁体   English   中英

使用Middleman将日期从Yaml打印到红宝石

[英]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"]) %>

希望对您有所帮助。

首先,使用以下命令检查数据类型: comic['date'].class

如果它是一个日期,那么您可以使用: strftime来格式化日期,但是您需要!

如果不是日期,请告诉我们,我们将解释转换选项

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM