2
我無法理解爲什麼我的下面的代碼部分失敗。我嘗試爲Jekyll創建Liquid標籤。當設置類成員「text」時,成員「xyz」根本沒有設置。但爲什麼?Ruby:爲什麼我的成員沒有設置初始化?
module MyModule
class MyTag < Liquid::Tag
def initialize(tag_name, text, tokens)
super
@text = text
@xyz = "HELLO"
end
def render(context)
"Output #{@text} #{@xyz}"
end
end
end
Liquid::Template.register_tag('my_tag', MyModule::MyTag)
隨着調用上述以下
{% my_tag de 1234 %}
輸出是:
Output de 1234
我認爲應該有 「HELLO」,以及像:
Output de 1234 HELLO
我錯過了什麼?
來自the Liquid class is here的原始碼。
從代碼來看,我預計「輸出去HELLO」,而不是「輸出去1234 HELLO」 。 –
@SergioTulentsev不,它和我上面寫的完全一樣。該論點被視爲完整的字符串。你必須將自己的觀點與Liquid分開(人們說)。 – Christian
如果將「#輸出#{@文本}#{@ xyz}」'更改爲'「輸出#{@ text}'#{@ xyz}'」',會發生什麼? –