Heroku没有加载ajax调用

时间:2011-10-13 03:04:46

标签: ruby-on-rails ajax heroku

我有一项功能,可让用户将课程添加到购物车中。一切都在开发中正常工作:当用户点击“添加到购物车”图标时,它会在购物车中创建一个line_item对象,而carts_controller会执行一个AJAX请求,该请求会为购物车加载更新的html。这是代码:

  def create
    @user = current_user
    @cart = @user.cart
    @line_item = @cart.line_items.build(params[:line_item]) 

    respond_to do |format|
      if @line_item.save
        format.html { redirect_to(root_path, :notice => 'Course added to cart') }
        format.js { @current_item = @line_item }
        format.xml  { render :xml => @line_item, :status => :created, :location => @line_item }

然后format.js引用create.js.erb文件:

$("#cart").html("<%= escape_javascript(render(@cart)) %>");

这会拉入@cart部分,其中包含新插入的line_item。

然而,当我将其上传到heroku时,我的代码中的这部分内容破裂了。当我点击“添加到购物车”图标时,会创建line_item,但页面必须在显示购物车之前刷新。

在识别出这种AJAX调用之前,我是否需要在heroku中做些什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

对我而言,解决方案是改变:

配置/环境/ production.rb

config.assets.compile = true

(是'假')

答案 1 :(得分:0)

您可能需要预先编译资产。

在本地运行RAILS_ENV=production bundle exec rake assets:precompile。这将在公共目录中创建一个assests文件夹。添加所有这些并将其提交给heroku。