我有一项功能,可让用户将课程添加到购物车中。一切都在开发中正常工作:当用户点击“添加到购物车”图标时,它会在购物车中创建一个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中做些什么?
谢谢!
答案 0 :(得分:1)
对我而言,解决方案是改变:
配置/环境/ production.rb
config.assets.compile = true
(是'假')
答案 1 :(得分:0)
您可能需要预先编译资产。
在本地运行RAILS_ENV=production bundle exec rake assets:precompile
。这将在公共目录中创建一个assests文件夹。添加所有这些并将其提交给heroku。