我无法理解为什么我的下面的代码部分失败了。我尝试为Jekyll创建Liquid标签。设置类成员“text”时,根本不设置成员“xyz”。但为什么呢?
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的原始代码。
答案 0 :(得分:2)
您的代码似乎可以正常使用Ruby 2.1.5和liquid-3.0.6:
require 'liquid'
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)
@template = Liquid::Template.parse("{% my_tag de 1234 %}")
puts @template.render
#=> "Output de 1234 HELLO"