レールの横の列にカートがあるオンラインストアアプリがあります。ユーザーが「カートにアイテムを追加」をクリックするたびにカート列だけをリロードするAJAXを正常に追加しました。現在、カート内の新しいアイテムを強調表示しようとしています (黄色のフェード効果のように)。
これを実行しようとすると、機能しないだけでなく、カート内のアイテムの数を自動的に更新するコードが壊れます。アイテムは引き続きカートに追加されますが、表示するには更新する必要があります。壊れているコード行を分離しましたが、何が問題なのかわかりません。適切な宝石がすべてインストールされていると思います。私は周りを見回し、これを調査し、適切なgemをインストールしようとしました。私はそれらを持っていると思いますが、表示できないコードに問題があります。私は JavaScript や jquery についてよく知りません。私は主に Ruby と Java の人です。
Gemfile で:
gem 'jquery-rails'
gem 'jquery-ui-rails'
line_items_controller (カート内の各項目用) で、
def create
@cart = current_cart
product = Product.find(params[:product_id])
@line_item = @cart.add_product(product.id)
@line_item.product = product
respond_to do |format|
if @line_item.save
format.html { redirect_to store_url}
format.js
format.json { render json: @line_item,
status: :created, location: @line_item }
else
このコラムのパーシャルでは、html.erb ファイル:
<% if line_item == @current_item %>
<tr id="current_item">
<% else %>
<tr>
<% end %>
<td><%=line_item.quantity%>×</td>
<td><%= line_item.product.title%></td>
<td class="item_price"><%= number_to_currency(line_item.total_price)%></td>
</tr>
ビューの create.js.erb で:
$('#cart').html("<%=j render @cart %>");
$('#current_item').css({'background-color: #88ff88'}).animate({"background-color: #114411"}, 1000);
この 2 行目 $('#current_item').... は、それを壊すものです。最初の行はカートの自動更新を機能させるものであり、残りのすべてのコードでカートの自動更新は正常に機能します。この 2 行目を追加すると、自動更新が機能しなくなります。サーバーはパーシャルをレンダリングしていると言っていますが、何もしません。
jquery メソッドを適切に呼び出していますか? gem を適切に実行していますか? 私はまだ宝石を使うのが初めてです。ありがとうございました。