Ruby 不能和杰基尔一起推
我在Jekyll中创建了一个空数组,但无法推送数据。 这里描述了如何操作,但在我的机器上似乎不起作用。我使用Jekyll2.5.3Ruby 不能和杰基尔一起推,ruby,jekyll,Ruby,Jekyll,我在Jekyll中创建了一个空数组,但无法推送数据。 这里描述了如何操作,但在我的机器上似乎不起作用。我使用Jekyll2.5.3 {% assign selected = site.array %} {% for success in site.data.success %} {% assign selected = selected | push: success.id %} {% end
{% assign selected = site.array %}
{% for success in site.data.success %}
{% assign selected = selected | push: success.id %}
{% endfor %}
site.array在my_config.yml中定义为
site.array: []
我确信success.id是存在的
更新1
我在_config.yml中更改了
array: []
还是不走运。为什么要定义一个
站点。在\u config.yml
中有什么东西
此处定义的任何变量都将使用站点
前缀进行访问,但添加此前缀并不取决于您,由Jekyll负责。例如:{{site.title}
指的是site:My awesome title
。这是自动的
只需定义:emptyArray:[]
,并使用site.emptyArray
访问它
使用site.array:[]
,您定义的配置变量永远不会是site.site.array
,因为yaml键应该是字符串。在这里,访问变量的唯一方法是编写site[“site.array”]
注意:如果可以,请升级到较新版本的Jekyll,以备将来使用。我不确定Jekyll是否接受空数组“出乎意料”
因此,尝试在for
循环之前使用if
语句:
{% if site.array %}
{% assign selected = site.array %}
{% for success in site.data.success %} {% assign selected = selected | push: success.id %}
{% endfor %}
{% endif %}
只需在\u config.yml
中保留数组:
。site.variable
将调用此文件中定义的任何变量
我建议您在将数组留空之前尝试使用数组中的一些值,以确保代码正常工作
希望有帮助 嗨,非常感谢你的回答。我已经尝试过你的解决方案,但是推还是不起作用。我还更新了问题。任何其他线索?和站点.数据.success
是什么?