私の質問が完全に聞こえる場合はまずお詫び申し上げますが、私は Rails をまったく使用したことがなく、フレームワークで何が起こっているのかまったくわかりません。
「Ruby on Rails」に関する本を読んでいて、ボタンがクリックされたときにテーブルからいくつかの行を削除するだけです。assets/javascript/*.js.coffee に追加した JavaScript は次のとおりです。
if $("#cart").length is 1
$("#cart").hide "blind",
direction: "vertical"
, 1000
$("#cart tr").not(".total_line").remove()
元の JavaScript (コーヒー js は初めてなので、オンライン コンバーターを使用して変換しましたが、それが正しいかどうかはわかりません):
if ($('#cart').length == 1) { $('#cart').hide("blind", {direction: "vertical" }, 1000); }
$('#cart tr').not('.total_line').remove();
コントローラーの destroy メソッドに追加しました。
format.js {}
how メソッドは次のようになります。
def destroy
#@cart = Cart.find(params[:id])
#@cart.destroy
@cart = current_cart
@cart.destroy
session[:cart_id] = nil
respond_to do |format|
#format.html { redirect_to store_url,notice: 'Your cart is currently empty' }
format.js { }
format.html { redirect_to store_url }
format.json { head :no_content }
end
end
しかし、それは私に次のエラーを与えます(jsを呼び出す必要があるボタンがクリックされた後):
テンプレートがありません
{:locale=>[:en], :formats=>[:js, :html], :handlers=>[:erb, :builder, :coffee]} のテンプレート carts/destroy、application/destroy がありません。検索場所: * "/home/gotqn/Aptana Projects/depot/app/views"
いくつか検索した結果、この質問Template is missing が見つかりました。この質問では、メソッドのどこかにリダイレクトする必要があると書かれています。私は単に書いてみます:
format.js {head :no_content }
本当にエラーは出ませんが、JavaScript は実行されません。
この問題について本当に助けが必要です。前もって感謝します。