( ruby 菜鸟) 我正在使用 nanoc 生成站点。这是我的带有元数据的示例页面:
---
title: abc
parameters:
abc: def
ghi: ijk
---
test
我知道我可以在上一级设置参数,但我想在布局文件中访问它们:
<%= @item[:parameters][:abc] %>
但是我得到了以下错误:
undefined method `[]' for nil:NilClass
参数被传递给布局,因为当我这样做时:
<%= YAML::dump(@item[:parameters]) %>
我能看到他们。作为一个 Ruby 新手,我认为我的问题有一个简单的解决方案。此外,如果您可以发布一个遍历 :parameters hash 的片段,我将不胜感激。
最佳答案
您的站点上可能有多个页面。因此 parameters
并不存在于每个页面 nanoc 进程的布局中。对于某些页面,该元素将为 nil
,因此会出现错误。
也许您需要重新考虑如何使用这些参数,或者您需要在布局中使用条件来查找 parameters
并仅在它们存在时使用它们:
<% if @item[:parameters] %>
<%= @item[:parameters][:abc] %>
<% end %>
关于ruby - 未定义方法 `[]' 为 nil :NilClass when trying to display metadata in nanoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14343785/