2010-09-21 12 views
8

का सबसे अच्छा तरीका अब रेल 3 दृश्यों (अच्छे) में सभी मूल्यांकन तत्वों से बच निकलता है, लेकिन यह मेरे फ़्लैश संदेश से भी बच रहा है। और मुझे अपने फ़्लैश संदेश (या मजबूत या जोर) में कभी-कभार लिंक पसंद है।रेल 3 - फ्लैश संदेश बच निकले, अनदेस्केप

एक फ़्लैश संदेश:

flash[:notice] = "<strong>Bob</strong> was sucessfully checked in.<br />If you made a mistake, you can <a href=\"/scouts/#{@scout.id}/check_out\">check out Bob</a> to undo." 

ठीक से प्रदर्शित हो जाता है, बच गए, व्यर्थ।

मैं संदेश raw का उपयोग कर unescape कर सकते हैं:

- flash.each do |name, msg| 
    = content_tag :div, raw(msg) 

लेकिन अब हर फ़्लैश संदेश नहीं छोड़ा जाएगा है।

मैं सिर्फ एक सिंगल फ़्लैश संदेश कैसे अनदेखा कर सकता हूं? या सिर्फ संदेश के कुछ हिस्सों?

उत्तर

11

प्रत्येक सूचना के लिए अपने नियंत्रक में html_safe आज़माएं जिसे आप बचाना चाहते हैं। यह आपको दृश्य से कच्चे फ़ंक्शन को हटाने और केवल उन लोगों को अनदेखा करने की अनुमति देगा जिन्हें आप नियंत्रक में चाहते हैं।

flash[:notice] = "test<br/>test".html_safe 
+1

बिल्कुल सही। धन्यवाद। इससे भी मदद मिली: http://yehudakatz.com/2010/02/01/safebuffers-and-rails-3-0/ – Karl

+0

यह रेलों में नियंत्रक के भीतर से काम नहीं करेगा 5. वास्तव में कच्चे का उपयोग करने की सिफारिश की जाती है देखें, https://apidock.com/rails/String/html_safe देखें – count0

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