Ruby 不能和杰基尔一起推

Ruby 不能和杰基尔一起推,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

我在Jekyll中创建了一个空数组,但无法推送数据。 这里描述了如何操作,但在我的机器上似乎不起作用。我使用Jekyll2.5.3

            {% 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
是什么?