2015-10-20 36 views
2

我正在嘗試設置Liquid gem,因此它不會引發語法錯誤的異常。根據Liquid gem Readme page,您可以設置不同的錯誤模式,並且如果lax已設置,它應該接受「幾乎任何事情」並且不會引發任何異常。即使我設置模式,將引發異常,例如:在鬆弛模式下提升SyntaxError

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

似乎你錯過了第二個}

而不是

Liquid::Template.parse("Thank you for your purchase at {{shop_name}") 

嘗試

Liquid::Template.parse("Thank you for your purchase at {{shop_name}}") 
+0

是的,我知道有一個語法錯誤,我想要做的是配置液體,以便它不會引發異常在那些錯誤。我編輯了這個問題,使其更清晰 – davids

0

這實際上是expected behavior,你不能避免在這種情況下液體引發異常。爲了防止有人碰到相同的問題,我不是關閉這個問題)