2009-12-04 41 views
6

我有一對夫婦塊幫手,下面是我在做什麼一個簡單的例子:Erubis塊助手投擲誤差CONCAT

def wrap_foo foo, &block 
    data = capture(&block) 

    content = " 
     <div class=\"foo\" id=\"#{foo}\"> 
     #{data} 
     </div>" 
    concat(content) 
end 

我只是嘗試erubis和它給我下面的錯誤:

You have a nil object when you didn't expect it! 
You might have expected an instance of Array. 
The error occurred while evaluating nil.<< 

卸下調用concat刪除錯誤,但我不包裝渲染

使用結束:

  • 的Rails 2.3.5
  • Erubis 2.6.5
  • 並試圖this gem,幫助Erubis(雖然2.6.4)和Rails 2.3遊戲更好地結合在一起
+0

我遇到了使用Formtastic和Erubis在兩條軌道2.3.4和2.3.5類似的問題。 – 2009-12-21 09:33:00

回答

2

實際使用rails_xss plugin,這是我的最終目標包含了一個解決方案。

我不得不改變我的助手要做到這一點concat(content.html_safe!)

1

因爲Erubis 2.7.0你可以利用的:以這種方式bufvar選項:

Erubis::Helpers::RailsHelper.init_properties = {:bufvar => '@output_buffer'} 
+0

這解決了我在rails 2.3.14下看到的一個問題,當調用form_for函數時,我看到錯誤「未定義的方法'safe_concat'爲nil:NilClass' – robd 2012-07-07 23:04:02

0

添加

Erubis ::助手:: RailsHelper.init_properties = {:bufvar =>「@output_buffer 「}

到配置/初始化/ erubis.rb固定對我來說