0

レールの横の列にカートがあるオンラインストアアプリがあります。ユーザーが「カートにアイテムを追加」をクリックするたびにカート列だけをリロードする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%>&times;</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 を適切に実行していますか? 私はまだ宝石を使うのが初めてです。ありがとうございました。

4

3 に答える 3

0

インサイド ダウンロード rails32/depot_m/app/views/line_items/_line_item.html.erb

引用符が単一ではなく二重であることを確認してください。

その場合、ハイライトは機能しません。

于 2013-12-13T17:18:25.267 に答える
0

これはかなり遅いですが、私はまったく同じことを経験しています。あなたの回答はとても役に立ちましたので、私が間違っていると思うことをお知らせします。

line_item_controller で、「format.js」と記述しますが、変数は渡しません。しかし、html.erb ファイルでは、 <% if line_item == @current_item %> を実行します。

変数を渡していないため、@current_item には何も取得されません。したがって、if ステートメントは常に失敗し、html.erb は常に代わりにフォーマットを保持します。

私はあなたがすでにこれを理解していることを願っています!

于 2015-01-14T02:53:35.140 に答える