gpt4 book ai didi

ruby - 未定义方法 `[]' 为 nil :NilClass when trying to display metadata in nanoc

转载 作者:数据小太阳 更新时间:2023-10-29 08:00:44 26 4
gpt4 key购买 nike

( 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com