Tôi đã thử mọi thứ. Mọi kết hợp của những người trợ giúp raw
, html_safe
to_json
bao gồm một số lần thử với ::JSON.encode
và CGI.unescape
. Vấn đề là bất kể tôi làm gì, tôi không thể in JSON được định dạng tốt trong một chế độ xem. Nó luôn luôn HTML thoát.In JSON hợp lệ, không thoát được trong chế độ xem với Rails
Dưới đây là mã trong quan điểm của tôi:
var campaignData<%= "=" + (raw @campaign.to_json) if @campaign %>;
Trong trường hợp của tôi, nó luôn luôn có dấu ngoặc kép được thoát như ". Tôi sẽ chỉ làm một gsub trên báo giá, nhưng đó là một giải pháp khủng khiếp cho những gì IMO phải là một trường hợp sử dụng rất đơn giản, tài liệu.
Điều này không an toàn. Điều gì sẽ xảy ra nếu json chứa một chuỗi có ít hơn? Nếu bạn đặt thẻ này vào thẻ tập lệnh, ai đó có thể tiêm thẻ đóng tập lệnh và bắt đầu một thẻ mới có mã tùy ý. Bạn cần bọc chuỗi json trong 'json_escape'. Tuy nhiên, chức năng đó đã bị hỏng cho đến gần đây (đường ray 4.1). – Kelvin
Có, tôi cũng thấy rằng điều này không hiệu quả đối với tôi khi @campaign == "" – hrdwdmrbl
THANKS A TON !!! –