2012-01-06 11 views
9

मैं Flash त्रुटि को स्वरूपित करने की कोशिश की और कुछ मुद्दों में भाग:फ्लैश त्रुटि में मैं एक नई लाइन कैसे जोड़ूं?

errors = ["error1 msg", "error2 msg", "error3 msg"] 
flash[:error] = errors.join("\n") 

मैं उन्हें तीन अलग-अलग लाइनों में दिखाया गया है देखने के लिए उम्मीद है, तथापि, मैं "error1 msg error2 msg error3 msg" बजाय मिला है।

स्ट्रिंग में शामिल होने के लिए उपयोग की जाने वाली नई लाइन का क्या हुआ?

उत्तर

4

ब्राउज़र आमतौर पर HTML में लाइन ब्रेक को अनदेखा करते हैं। शायद लाइन-ब्रेक <br/> टैग के साथ त्रुटियों में शामिल होने का वांछित प्रभाव होगा।

flash[:error] = errors.join("<br/>") 

हालांकि यह अधिक भावना शब्दार्थ कर सकते हैं एक बिना क्रम वाली सूची (<ul>) में त्रुटियों रख दिया और अपने स्वयं के सूची आइटम (<li>) में प्रत्येक त्रुटि डाल करने के लिए। तुम्हारा कॉल।

+4

यह काम नहीं करता है। अब यह प्रदर्शित करता है "त्रुटि 1 संदेश
त्रुटि 2 संदेश
त्रुटि 3 msg" – user612308

+2

यह काम करता है, लेकिन रेल संभवतया '
' सहायक होने की कोशिश कर रहा है। –

+7

'error.join ("
") .html_safe' को काम करना चाहिए। – Dogbert

13

एचटीएमएल लाइन-ब्रेक के लिए न्यूलाइन का उपयोग नहीं करता है, यह <br/> टैग का उपयोग करता है। इसके अलावा, आप बनाने के लिए html_safe का उपयोग सुनिश्चित करें कि टेम्पलेट इसके अलावा <br/> टैग

errors = ["error1 msg", "error2 msg", "error3 msg"] 
flash[:error] = errors.join("<br/>").html_safe 

बच नहीं करता है, अगर आप त्रुटियों के साथ एक वस्तु है, तो आप full_messages का उपयोग ठीक से स्वरूपित त्रुटियों पाने के लिए कर सकते हैं चाहिए। कुछ ऐसा:

flash[:error] = @user.errors.full_messages.join("<br/>").html_safe 
+1

अन्य उत्तरों का उपयोग अपने आप के रूप में करना एक बुरा विचार है। – bronislav

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