2011-10-13 48 views
2

我有一个功能,可以让用户添加课程到他们的购物车。在开发中一切正常:当用户点击“添加到购物车”图标时,它会在购物车中创建一个line_item对象,并且carts_controller执行一个AJAX请求,以加载该购物车的更新后的html。下面的代码:然后Heroku not loading ajax calls

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中做些什么吗?

谢谢!

+0

不,你并不需要什么具体的你的AJAX工作在Heroku.Just确保你正确地在你的文件中包含prototype.js或者prototype.js存在于你的应用程序文件夹中 – Salil

回答

0

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

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

1

对我来说,解决办法是改变:

配置/环境/ production.rb

config.assets.compile = true 

(是 '假')