2009-12-04 2 views
6

J'ai deux ou trois assistants de bloc, voici un exemple simple de ce que je fais:aide de bloc erubis lancer erreur avec concat

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

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

Je suis juste essayer erubis et il me donne l'erreur suivante :

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

Retrait de l'appel à concat supprime l'erreur, mais se termine avec mon emballage pas rendu

utilisant:

  • Rails 2.3.5
  • erubis 2.6.5
  • Et essayé this gem qui aide erubis (si 2.6.4) et Rails 2.3 à mieux jouer ensemble
+0

j'ai rencontré un problème similaire en utilisant Formtastic et erubis sur les deux rails et 2.3.5 2.3.4. –

Répondre

2

En fait, en utilisant la rails_xss plugin, qui était mon but ultime contient une solution pour cela.

Je devais changer mon aide pour faire ce concat(content.html_safe!)

1

depuis erubis vous pouvez exploiter 2.7.0 l'option: bufvar ainsi:

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

Cela a résolu un problème que je voyais sous les rails 2.3.14 où j'ai vu l'erreur 'méthode non définie' safe_concat 'pour nil: NilClass' lors de l'appel de form_for – robd

0

Ajout

erubis :: :: Helpers RailsHelper.init_properties = {: bufvar => « @output_buffer « }

à config/initializers/erubis.rb fixe pour moi