これで問題は解決しましたcontext[@markup.strip]
。
私の問題は、次のように変数をカスタム Liquid タグに渡すことができるようにしたかったことです。{% get_menu main_menu navigation.html settings.theme.id %}
これを行うには、最初に変数文字列をすべてのスペース文字で異なる変数に分割します。
class GetMenu < Liquid::Tag
include ApplicationHelper
def initialize(tag_name, variables, tokens)
@variables = variables.split(" ")
@menu_object = @variables[0]
@file_name = @variables[1]
@theme_id = @variables[2]
super
end
def render(context)
# This is where i use context[@theme_id.strip] to get the variable of "settings.theme.id"
content = CodeFile.find_by(hierarchy: 'snippet', name: @file_name.to_s, theme_id: context[@theme_id.strip])
@menu ||= Menu.find_by_slug(@menu_object)
context.merge('menu' => @menu)
Liquid::Template.parse(content.code).render(context)
end
end
Liquid::Template.register_tag('get_menu', GetMenu)
*これは、Jonathan Julian による上記の回答よりも豊富な例です。