我正在使用 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 %>
这会给你数字 8
如果你想更多地定制你的月份看起来你应该查看 strftime ,如果是这样,您甚至不需要使用 .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"]) %>
希望对您有所帮助。
关于ruby - 使用中间人将日期从 yaml 打印到 ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29332384/