我遵循了this教程,为我的应用创建了购物车功能。
“添加到购物车”按钮应该使用AJAX使商品显示在购物车中(右上方)。
“添加到购物车”按钮的操作如下:
<%= form_for @basket_item, remote: true do |f| %>
<div class="input-group">
<%= f.hidden_field :quantity, value: 1 %>
<div class="input-group-btn">
<%= f.hidden_field :variation_id, value: variation.id %>
<%= f.submit "Add to Cart", class: "btn btn-primary" %>
</div>
</div>
<% end %>
哪个触发了此控制器逻辑:
def create
@basket = current_basket
@basket_item = @basket.basket_items.new(basket_item_params)
if @basket.save
respond_to do |format|
format.js
format.html
end
else
alert "Something went wrong!"
end
session[:basket_id] = @basket.id
end
有了这个create.js
:
<% if @basket.errors.any? || @basket_item.errors.any? %>
alert("not valid.")
<% else %>
$("#cart-text").html("<%= escape_javascript(render 'layouts/cart_text') %>")
<% end %>
要在我的应用程序布局上更新#cart-text
,
<a><div id="cart-text"><%= render 'layouts/cart_text' %></div></a>
它在localhost
上正常工作,但是当我部署到Heroku时,单击“添加到购物车”按钮时,控制台上出现500 (Internal Server Error)
错误。 (您可以在https://www.thestaysanemom.com/goodies/1上看到错误的寿命)。
我进行了查找,诸如this之类的帖子建议对资产进行预编译,并在config.assets.compile = true
上添加行production.rb
,我都尝试了两次,但都没有效果。
诸如this之类的帖子建议将config.assets.debug = true
添加到production.rb
,由于无法找到资产文件夹中清晰可见的图像,这使我的整个应用崩溃(500页)。
关于如何解决此问题的任何想法?