2009-12-04 8 views
6

Tengo un par de ayudantes de bloque, aquí hay un ejemplo sencillo de lo que estoy haciendo:Erubis bloque ayudante error de tiro con concat

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

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

sólo estoy tratando de salir erubis y me está dando el siguiente error :

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.<< 

Extracción de la llamada a concat elimina el error, pero que termina con mi envoltorio no está representando

Usando:

  • Rails 2.3.5
  • Erubis 2.6.5
  • y trató this gem que ayuda Erubis (aunque 2.6.4) y Rails 2.3 juego mejor juntos
+0

se han topado con un problema similar usando Formtastic y Erubis en ambos carriles 2.3.4 y 2.3.5. –

Respuesta

2

realidad mediante el rails_xss plugin, que era mi objetivo final contiene una solución para esto.

sólo tenía que cambiar mi ayudante para hacer esto concat(content.html_safe!)

1

desde Erubis 2.7.0 se puede explotar la opción: bufvar de esta manera:

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

Esto solucionó un problema que estaba viendo debajo de los rieles 2.3.14 donde vi el error 'método indefinido' safe_concat 'para nil: NilClass' al llamar a form_for – robd

0

Adición

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

a config/inicializadores/erubis.rb fijado por mí

Cuestiones relacionadas