के साथ एक दृश्य में वैध, गैर-भागने वाले JSON को प्रिंट करें मैंने सब कुछ करने की कोशिश की है। मददगार raw
, html_safe
to_json
के प्रत्येक संयोजन ::JSON.encode
और CGI.unescape
के साथ कुछ प्रयासों सहित। मुद्दा यह है कि मैं जो भी करता हूं, उसके बावजूद, मैं एक दृश्य में अच्छी तरह से गठित JSON मुद्रित नहीं कर सकता। यह हमेशा से बच निकला एचटीएमएल है।रेल
यहाँ मेरे विचार में कोड है:
var campaignData<%= "=" + (raw @campaign.to_json) if @campaign %>;
मेरे मामले में, यह हमेशा उद्धरण कि " के रूप में बच गए हैं। मैं उद्धरणों पर बस एक जीएसबी करूंगा, लेकिन यह एक भयानक समाधान है कि आईएमओ को एक बहुत ही सरल, अच्छी तरह से प्रलेखित उपयोग केस होना चाहिए।
यह असुरक्षित है। क्या होगा यदि जेसन में एक स्ट्रिंग के साथ एक स्ट्रिंग है? यदि आप इसे एक स्क्रिप्ट टैग में डालते हैं, तो कोई क्लोजिंग स्क्रिप्ट टैग इंजेक्ट कर सकता है और मनमाने ढंग से कोड के साथ एक नया प्रारंभ कर सकता है। आपको json_escape' में जेसन स्ट्रिंग को लपेटने की आवश्यकता है। हालांकि, यह फ़ंक्शन हाल ही में तब तक टूट गया है (रेल 4.1)। – Kelvin
हां, मुझे यह भी पता चला कि यह मेरे लिए काम नहीं करता है जब @campaign == "" – hrdwdmrbl
धन्यवाद एक टन !!! –