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