2012-04-30 6 views
17

मेरे सहायक इस तरह काम करता है प्राप्त कर सकते हैं:सहायक रेल - कैसे मैं एक सहायक ने मुझे एक `` <br/> (या अन्य मार्कअप) देने के लिए

def some_help(in_string) 
    in_string + " and more" 
end 

लेकिन मैं इसे उत्पादन और मैं पहले एक
करने के लिए क्या चाहते हैं < br> खुद को वर्ण एक ब्रेक हो रही सचमुच, IE नहीं रख लेकिन क्या मैं चाहता हूँ एक < br> है कि समस्या है।

तो

def some_help(in_string) 
    "<br/>" + in_string + " and more" 
end 

सही काम नहीं करता।

+0

आम तौर पर आप उल्लेख करना चाहते हैं कि, विशेष रूप से, काम नहीं करता है। –

+1

quesrion – junky

उत्तर

33

उपयोग tag(:br) बजाय "<br/>"

content_tag(:br) खोलने और br टैग को बंद करने और का उपयोग कर बनाता है raw या html_safe सिर्फ बदसूरत है (खतरनाक नहीं उल्लेख करने के लिए)।

+0

क्यों 'raw' के उपयोग या' html_safe' खतरनाक है अपडेट किया गया? – fmmatheus

+1

यदि आप उपयोगकर्ता इनपुट के साथ 'कच्चे' और' html_safe' का उपयोग करते हैं और उस इनपुट से बचने के लिए भूल जाते हैं, तो आप XSS हमले के लिए स्वयं को सेट अप करेंगे। 'कच्चे ("
# {h user_input} ") ठीक है लेकिन' कच्चा ("
# {user_input}") खतरनाक है। अंतर 'एच' विधि है, जो विधि' html_escape' के लिए उपनाम है। – Ashitaka

2

मुझे यकीन है कि मैं तुम्हें समझ में नहीं हूँ। आप अपनी स्ट्रिंग में <br /> जोड़ते हैं, और यह सादे में रहता है जबकि आप इसे एक नई लाइन का प्रभाव चाहते हैं? यदि ऐसा है, तो आपको अपनी स्ट्रिंग को HTML- सुरक्षित के रूप में चिह्नित करना होगा। आप इसे "somestring".html_safe के साथ करते हैं।

0

रेल स्वचालित रूप से HTML पात्रों निकल जाता है। स्ट्रिंग पर .html_safe का उपयोग करें।

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