1
我的Ruby on Rails應用程序中有一段JavaScript代碼片段,它與遠程服務器進行通信並向它傳遞一個由包含諸如SKU,價格等等的字典數組組成的JSON。Ruby on Rails:如何將JSON傳遞給JavaScript
很簡單在Ruby中產生:
@items = @order.line_items.map do |item|
{
sku: item.variant.sku,
price: item.variant.price
quantity: item.quantity
currency: current_user.currency
}
end
然而,當我在JavaScript中插入 - 這是行不通的。
{
items: "<%= @items %>"
}
我認爲問題是,實體轉義。如果我使用alert來檢查返回的值,我可以看到所有實體像引號都被轉義了。
我直接插值的其他地方似乎工作正常。例如:
invoice_number: "<%= @order.id %>"
其他人有這個問題,但沒有解決方案的出現在這種情況下工作。我試過raw
,html_safe
等
我一定會錯過一些東西。解決這個問題的最好方法是什麼?
感謝DANIL但這不起作用。 JS在控制檯中給我一個與缺少的右括號相關的語法錯誤。 (??)這是令人沮喪的,因爲我可以用虛擬值處理代碼並使其工作,但無法從ruby插入值。它真的想要將這些引號表示爲實體。 – hawmack13
項目:「[{" SKU " = > " 1068R-FR ","價格" = >#<的BigDecimal:7f8cede8d498,' 0.1901E2 ',18(27)>,"量" = > 1,"貨幣" = > " EUR "}]「 } – hawmack13
(這就是原始代碼放入頁面源代碼的原因)。我嘗試了幾種不同的方法,但它總是將引號表示爲實體。如果我手工編碼,它的效果很好,但當然這不起作用。必須有一種方法可以將JSON對象從Ruby轉換爲JS?感謝Danil提供任何建議! – hawmack13