我必须将对象Product传递给javascript。 我已经阅读了不同的方法,如:
数据参数,我已经使用
<div id="chosen-product-<%=product.id %>" class="chosen-product-panel panel panel-primary"
data-conversion="<%= product.conversion %>" data-measure="<%= product.measure %>"
gem gon(看起来很相似)
但我的问题是产品有大约50个属性。所以我不想传递50个数据参数。我怎样才能传递整个对象(一般来说可能吗?)然后在javascript中获取他的属性?我也看过Ryan Bates的http://railscasts.com/episodes/324-passing-data-to-javascript?autoplay=true,但也找不到解决问题的方法。
答案 0 :(得分:1)
您可以将对象转换为json:
<div id="chosen-product-<%=product.id %>" class="chosen-product-panel panel panel-primary"
data-conversion="<%= product.conversion.to_json %>" data-measure="<%= product.measure.to_json %>"
答案 1 :(得分:1)
你必须将@product渲染为json。然后发送ajax请求并获取此对象。
class ProductsController < ApplicationController
def get_product
@product = Product.find(params[:id])
render json: {product: @product}
end
end
$.ajax({
type: 'post',
url: 'products/get_product',
success: function (product) {
//here you get product object with all attributes
},
error: function (err) {
console.log(err);
},
});