我试图设置Liquid gem,以便它不会引发语法错误的异常。根据{{3}},您可以设置不同的错误模式,如果设置了lax
,它应该接受几乎任何""并且不会提出任何例外。即使我设置了该模式,也会引发异常,例如:
1.9.3-p551 :041 > Liquid::Template.error_mode = :lax
=> :lax
1.9.3-p551 :042 > Liquid::Template.error_mode
=> :lax
1.9.3-p551 :043 > Liquid::Template.parse("Thank you for your purchase at {{shop_name}")
Liquid::SyntaxError: Liquid syntax error: Variable '{{shop_name}' was not properly terminated with regexp: /\}\}/
from /Users/david/.rvm/gems/ruby-1.9.3-p551/gems/liquid-3.0.6/lib/liquid/block.rb:104:in `create_variable'
from /Users/david/.rvm/gems/ruby-1.9.3-p551/gems/liquid-3.0.6/lib/liquid/block.rb:44:in `parse'
from /Users/david/.rvm/gems/ruby-1.9.3-p551/gems/liquid-3.0.6/lib/liquid/tag.rb:10:in `parse'
from /Users/david/.rvm/gems/ruby-1.9.3-p551/gems/liquid-3.0.6/lib/liquid/document.rb:5:in `parse'
from /Users/david/.rvm/gems/ruby-1.9.3-p551/gems/liquid-3.0.6/lib/liquid/template.rb:122:in `parse'
from /Users/david/.rvm/gems/ruby-1.9.3-p551/gems/liquid-3.0.6/lib/liquid/template.rb:108:in `parse'
from (irb):43
from /Users/david/.rvm/gems/ruby-1.9.3-p551/gems/railties-3.2.17/lib/rails/commands/console.rb:47:in `start'
from /Users/david/.rvm/gems/ruby-1.9.3-p551/gems/railties-3.2.17/lib/rails/commands/console.rb:8:in `start'
from /Users/david/.rvm/gems/ruby-1.9.3-p551/gems/railties-3.2.17/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
我错过了什么?
答案 0 :(得分:0)
似乎你错过了第二个}
。
而不是
Liquid::Template.parse("Thank you for your purchase at {{shop_name}")
尝试
Liquid::Template.parse("Thank you for your purchase at {{shop_name}}")
答案 1 :(得分:0)
它实际上是expected behavior,在这种情况下你不能避免Liquid提出异常。 (以防万一有人遇到同样的问题,我没有关闭这个问题)