Ruby动态绑定变量作为对象

时间:2015-08-09 16:31:18

标签: ruby-on-rails ruby shopify

考虑以下循环

{% for product in collections.settings[collection_setting].products %}

 {{ settings[collection_setting] }} - {{ product.title }}

{% endfor %}

此处设置[collection_setting] 等于绿色,但这不起作用。如果我有这个静态,那就是实例

{% for product in collections.green.products %}

 {{ settings[collection_setting] }} - {{ product.title }}

{% endfor %}

任何人都可以解释为什么会发生这种情况以及如何解决这个问题。

答案

抱歉浪费你的时间。这helps me to work

工作

{% for product in collections[settings[collection_setting]].products %}

{% endfor %}

2 个答案:

答案 0 :(得分:0)

collection_setting似乎是一个红宝石变量。因此,要让液体模板引擎对此进行评估,您需要使用双括号({{collection_setting}})。

答案 1 :(得分:0)

你有这个:

{% for product in collections.settings[collection_setting].products %}

......你确定你不是这个意思吗?

{% for product in collections[collection_setting].products %}

您的非工作示例有一个.settings,您的工作示例没有。