2014-12-09 12 views
14

Tôi có đoạn mã sau:Ngăn chặn Rails từ mã hóa các ampersands trong một URL khi xuất ra JSON

render json: { image: image } 

Hình ảnh có thuộc tính "url". Hãy nói rằng đó là:

https://blah.com/a?A=B&C=D 

Khi render, đây là những gì tôi nhận được:

{"image":{"url":"https://blah.com/a?A=B\u0026C=D"}} 

dấu và là nhận được mã hóa như \ u0026

Có cách nào để tránh mã hóa này?

+0

Xem câu trả lời của tôi cho câu hỏi tương tự này ở đây: http://stackoverflow.com/a/35020478/594763 – patrick

Trả lời

23

Thêm vào application.rb bạn file:

config.active_support.escape_html_entities_in_json = false 
+0

Và đừng quên khởi động lại máy chủ sau khi :-) ..nice answer! –

0
+2

Tất cả những giải thích lý do tại sao nó xảy ra, nhưng không phải là cách giải quyết vấn đề. Các URL tôi có là tài nguyên bên ngoài, không phải nội bộ cho ứng dụng của tôi, vì vậy tôi không thể giải quyết vấn đề này bằng cách sử dụng trình trợ giúp định tuyến để tạo URL. Và monkeypatching âm thanh như một ý tưởng rất, rất xấu. –

+0

Bạn có thể dán một phần mã của mình không? Hoặc giải thích vấn đề của bạn nhiều hơn? nơi bạn sử dụng các mã này? ... – 01e

Các vấn đề liên quan