(Ruby noob) 我正在使用nanoc来生成一个站点。这是我的带有元数据的示例页面:
---
title: abc
parameters:
abc: def
ghi: ijk
---
test
我知道我可以将参数提升一级,但我想在布局文件中访问它们:
<%= @item[:parameters][:abc] %>
但我收到了以下错误:
undefined method `[]' for nil:NilClass
参数传递给布局,因为当我这样做时:
<%= YAML::dump(@item[:parameters]) %>
我可以看到他们。作为Ruby noob,我认为我的问题有一个简单的解决方案。此外,如果您可以发布一个代码片段迭代:参数哈希,我将不胜感激。
答案 0 :(得分:3)
您的网站上可能有多个页面。因此,每个页面nanoc进程的布局中不存在parameters
。对于某些页面,元素将为nil
,因此会出现错误。
也许您需要重新考虑如何使用这些参数,或者您需要在布局中使用条件来查找parameters
并仅在它们存在时使用它们:
<% if @item[:parameters] %>
<%= @item[:parameters][:abc] %>
<% end %>