ruby on rails 4 - Rails पर रूबी:.html_safe और sanitize के बीच अंतर()



ruby-on-rails-4 difference (1)

मेरे पास मेरे दृश्य में कोड के दो टुकड़े हैं:

<%= sanitize('<h3>winter</h3>') %>

<%= '<h3>winter</h3>'.html_safe %>

और ये दोनों एक स्ट्रिंग में एचटीएमएल टैग एन्कोडिंग के परिणामस्वरूप दिखाई देते हैं। उन दोनों के बीच अंतर क्या है और मुझे या तो कब का उपयोग करना चाहिए?


(सीखने रेल के एक वर्ष के बाद मेरे अपने प्रश्न पर लौट रहा है :-))
ये दो बहुत अलग तरीके हैं।

a = a.html_safe स्ट्रिंग को 'html_safe' के रूप में चिन्हित करता a और इसे बाद में a = a.html_safe (सुरक्षित के रूप में एक स्ट्रिंग चिह्नित करता है। इसे HTML में डाले बिना कोई अतिरिक्त पलायन करने के लिए डाला जाएगा। यह सुनिश्चित करने की आपकी जिम्मेदारी है कि स्ट्रिंग कोई भी दुर्भावनापूर्ण सामग्री नहीं.यह विधि विचारों में raw सहायक के समतुल्य है। यह अनुशंसा की जाती है कि आप इस विधि के बजाय sanitize उपयोग करें।) इसे कभी भी उपयोगकर्ता इनपुट पर नहीं बुलाया जाना चाहिए।)

दूसरी तरफ, किसी भी टैग को a.sanitize एन्कोड करना होगा और सभी विशेषताओं को पट्टी करेगा जो विशेष रूप से अनुमति नहीं दी गई हैं (यदि आप चाहते हैं तो आप अनुमति टैग और विशेषताओं को जोड़ सकते हैं / हटा सकते हैं)। ध्यान दें कि उपयोगकर्ता इनपुट को डिफ़ॉल्ट रूप से स्वीकृत किया जाता है जब तक कि आप विशेष रूप से raw साथ html मार्कअप की अनुमति नहीं देते ( http://apidock.com/rails/ActionView/Helpers/OutputSafetyHelper/raw ), जिस तरह से, html_safe का उपयोग इस तरह के रूप में चिह्नित करने के लिए करता है ।





html-safe