2009-12-04 15 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 करने के लिए कॉल निकाल रहा है त्रुटि को दूर करता लेकिन मेरी आवरण प्रदान नहीं किया जा रहा

का उपयोग के साथ समाप्त होता है:

  • रेल 2.3.5
  • Erubis 2.6.5
  • और कोशिश की this gem कि Erubis में मदद करता है (हालांकि 2.6.4) और रेल 2.3 खेलने बेहतर एक साथ
+0

मैं एक ऐसी ही समस्या दोनों रेल 2.3.4 और 2.3.5 पर Formtastic और Erubis का उपयोग करते समय है। –

उत्तर

2

असल rails_xss plugin, जो था का उपयोग कर मेरे अंतिम लक्ष्य में इसके लिए एक फिक्स शामिल है।

मैं बस करने के लिए इस concat(content.html_safe!)

1

Erubis और रेल 2.3 एक साथ अच्छी तरह से काम नहीं करते मेरी सहायक बदलना पड़ा। इस पोस्ट को देखें: http://daveelkins.com/2009/06/18/making-erubis-264-and-rails-23-work-together/ उन्होंने जिथब पर एक मणि बनाया है जो उन्हें एक साथ काम करने के लिए मिलता है।

1

के बाद से Erubis 2.7.0 आप दोहन कर सकते हैं: इस तरह से bufvar विकल्प:

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

यह एक समस्या है जिसे मैं रेल 2.3.14 के तहत देख रहा था, जहां मैंने शून्य के लिए त्रुटि 'अपरिभाषित विधि' safe_concat 'त्रुटि देखी: NilClass' form_for को कॉल करते समय – robd

0

जोड़ना

Erubis :: सहायकों :: RailsHelper.init_properties = {: bufvar => '@output_buffer '}

को config/initializers/erubis.rb यह तय करने के लिए मुझे

संबंधित मुद्दे