私は削除/破棄で立ち往生しています。どんな助けでも大歓迎です!
Postgres を使用して Mac 10.8.3 で Ruby 2.0.0 と Rails 3.2.6 を使用しています。
これは、機能するはずの削除リンクです。
<%= link_to 'Destroy', @product, method: :delete, data: { confirm: 'Are you sure?' } %>
しかし、Destroy リンクをクリックすると、ユーザーのプロファイルに移動します。確認ウィンドウが表示されず、何も実行されません (削除)。同じページにとどまっているようです。私はFirefoxを使用していますが、IEとChromeは同じです。
これは私が持っているものです:
gem「jquery-rails」がインストールされている
applications.js (app/assets/javascripts から) には次の行があります。
//= require jquery //= require jquery_ujs //= require_tree .
application.html.erb (app/views/layouts から) には次の行があります。
<%= javascript_include_tag "application" %> <%= csrf_meta_tags %>
ソースを見ると、次のように表示されます。
<script src="/assets/application.js?body=1" type="text/javascript"></script> <meta content="authenticity_token" name="csrf-param" /> <meta content="MVlJi+WJE1cwWoHnBrpRWIa13gqio0iPT3IL6kpQYdE=" name="csrf-token" />
products_controllers.rb (app/controllers から) に次のものがあります。
def destroy @product = Product.where(:id => params[:id]).first @product.destroy respond_to do |format| format.html { redirect_to products_url } format.json { head :no_content} end end
(構成から)routes.rbで私は持っています:
resources :products
その Destroy リンクの何が問題になっていますか?
同じ RoR プロジェクトで、[編集] リンクは正常に機能します。
では、なぜリンクが機能しないのでしょうか。それは Javascript の問題ですか、それとも私が見ていない他の問題ですか?
そして、ここにサーバーのログがあります: (「削除」アクションは実行されていないようです)
Started GET "/products/9" for 127.0.0.1 at 2013-08-01 20:01:08 -0500
Processing by ProductsController#show as HTML
Parameters: {"id"=>"9"}
Product Load (0.1ms) SELECT "products".* FROM "products" WHERE "products"."id" = 9 LIMIT 1
Rendered products/show.html.erb within layouts/application (0.5ms)
Completed 200 OK in 27ms (Views: 25.8ms | ActiveRecord: 0.1ms)