2009-12-04 50 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固定对我来说