Javascript在rails app中无效
我在store.html.erb文件中有这个代码
"line-item", :product => product.id %> $('document').ready(function(){ $(".line-item").click(function(){ var prod = $(this).attr('product'); $.ajax({ url:'', data: {product_id: prod}, type: 'POST', dataType: 'script' }); }); });
我的line_items_controller.rb有这段代码
def create @cart = current_cart product = Product.find(params[:product_id]) @line_item = @cart.add_product(product.id) respond_to do |format| if @line_item.save format.html { redirect_to(store_url) } format.js { @current_item = @line_item } format.xml { render :xml => @line_item, :status => :created, :location => @line_item } else format.html { render :action => "new" } format.xml { render :xml => @line_item.errors, :status => :unprocessable_entity } end end end
然后我的create.js.erb文件有这个代码
$("#notice").hide() $("#cart").html("")
还有我的_cart.html.erb
Total
:get %> :delete, :confirm => "Are you sure?" %>
现在当我点击添加到购物车按钮时,应该在购物车中添加产品,这应该在页面的左侧显示更新的值,但它没有显示这一点。 但是当我刷新页面时,我看到了更新的值。 这意味着我的javascript无法运行。 请让我知道为什么我的JavaScript无法正常工作。
在create.js.erb文件中添加此行
$("#cart").html("<%= escape_javascript(render(@cart)) %>");
这应该工作
你必须将@cart
作为本地人发送到购物车中,并且它会动态地更新价值。