私の下のコードが部分的に失敗する理由を理解できません。私はジキルのリキッドタグを作成しようとしています。クラスメンバー "text"が設定されている間、メンバー "xyz"はまったく設定されません。しかし、なぜ?上記の出力は、次のRuby:なぜ私のメンバーは初期化に設定されていませんか?
{% my_tag de 1234 %}
を呼んで
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)
:
Output de 1234 HELLO
:
Output de 1234
私は次のように、同様に "HELLO" が存在することになると予想
私は何を欠場しますか?
元のコードはthe Liquid class is hereです。
コードから判断していない「出力デ1234ハロー」 。 –
@SergioTulentsevいいえ、これは私が上に書いたのとまったく同じです。引数は完全な文字列として扱われます。自分で議論をLiquidと分けなければなりません(人々は言う)。 – Christian
出力#{@ text}#{@ xyz} "を"出力#{@ text} '#{@ xyz}' "に変更するとどうなりますか? –