Ruby 在Shopify中指定条件全局液体变量

Ruby 在Shopify中指定条件全局液体变量,ruby,shopify,liquid,Ruby,Shopify,Liquid,我正在尝试根据shopify使用的本地域显示它的内容。要做到这一点,我有下面的方法可以很好地工作: {% if request.host contains 'co.nz' %} {% assign site_currency = "NZ" %} {% endif %} 问题在于,在编译之前,变量似乎只在一个代码段/模板/布局文件中起作用,而Shopify类作为全局变量实际上只是主题设置中的一个值,因此不能是有条件的 我尝试了“{%assign scope=”page“%

我正在尝试根据shopify使用的本地域显示它的内容。要做到这一点,我有下面的方法可以很好地工作:

{% if request.host contains 'co.nz' %}
  {% assign site_currency = "NZ" %}
{% endif %}
问题在于,在编译之前,变量似乎只在一个代码段/模板/布局文件中起作用,而Shopify类作为全局变量实际上只是主题设置中的一个值,因此不能是有条件的

我尝试了“{%assign scope=”page“%}”,它显然在编译后可以工作,但我无法让它工作,而且文档也很少

有人知道我如何只声明一次这个变量,然后在整个主题中引用它吗


谢谢

Shopify全局变量仅为此处指定的对象-


实现全局引用功能而不通过代码段引用的唯一方法是通过JS将其存储在
购物车.attributes
中,但这需要页面刷新才能生效。

创建一个代码段或将代码粘贴到
{{content\u for_layout}}
主题.liquid

{% comment %} /snippets/global-vars.liquid {% endcomment %}

{% if request.host contains 'co.nz' %}
  {% assign site_currency = "NZ" %}
{% endif %}
如果您没有几种不同的货币,我建议您考虑使用
case/when
,文档


令人沮丧,但感谢你提供的信息,至少你把我从解决问题的死胡同中救了出来。理论上,如果你在一个代码段中添加上述代码,并在
主题中
呈现它。在
{content\u for_layout}}}之前,液体
这个变量应该在除签出之外的所有页面中都可用。实际上
呈现
不起作用,取而代之的是使用
include
,有趣的是
include
是,所以它可能在不久的将来停止工作。@KarimTarek。。“包含”也不起作用,除非您将其与一起使用。在这种情况下,render也可以工作,@HymnZ我尝试了我在回答中发布的代码,
include
在没有
with
:)的情况下工作,它是否可以通过直接引用
{site\u currency}在
内容和其他片段中工作?
{% comment %} /layout/theme.liquid {% endcomment %}

...

{% include 'global-vars' %}
{% comment %} this should print the currency {% endcomment %}
{{ site_currency }} 
{{ content_for_layout }}

...