2016-12-07 3 views
0

を破壊することはできません。Railsの5 - 私は私のアプリでイベントを削除しようとしているアイテム

def destroy 
    @event.destroy 
    respond_to do |format| 
     format.html { redirect_to events_url, notice: 'Event was successfully destroyed.' } 
     format.json { head :no_content } 
    end 
    end 

destroybefore_actionとしてset_event方法がある)

<% @events.each do |event| %> 
    <tr> 
    <td>Due date:</td> <%= event.date %><br> 
    <td>City:</td> <%= event.city %><br> 
    <td>Address:</td > <%= event.address %><br> 
    <td>Time:</td > <%= event.time %><br> 
    <td>Capacity:</td> <%= event.capacity %><br> 
    <td>Fee:</td> <%= event.fee %><br> 
    <%= link_to 'Show', event %></td> 
    <td><%= link_to 'Edit', edit_event_path(event) %></td> 
    <td><%= link_to "Delete", event, :confirm => "Are you sure?", :method => :delete %></td> 
    </tr> 
<% end %> 

クリック"Delete"で私のevent_pathに移動します。 http://localhost:3000/events/1。それはアイテムを破壊しません。私はそれがJSと何かできることを読んだが、私はすべての宝石があり、私のapplication.jsは上手く見える。私はdata属性値のハッシュに、役立ちます。この

<%= link_to 'Delete', event_path(event), data: { confirm: 'Are you sure?' }, method: :delete %> 

希望を試みるべきであるRailsの5.0

+0

は、Windowsシステム上で作業していますか? – dp7

+0

はい、それは問題になりますか? – Jack

+0

はい、この有名な問題のうちの1つです** Windowsユーザー**が出会います!実際には、レイアウト 'application.html.erb'に' <%= javascript_include_tag 'アプリケーション'%> 'がありません。理想的には、 'application = js'には' require = jquery_ujs'が必要です。これは本当にリクエストが 'get'か' delete'かを識別するのに役立ちます。 '<%= javascript_include_tag 'アプリケーション'%>'を '<%= javascript_include_tag:default%>'に変更したので、 'jquery_ujs'は機能しません!したがって、 'delete'リクエストは' get'リクエストとして受け入れられ、コントローラは 'destroy'の代わりに' show'アクションにマップします。 – dp7

答えて

1

confirmを使用しています!

2

これは有名な問題の1つですWindowsユーザーが出現します!実際に何が起こる

は、あなたが実際にリクエストがgetまたはdeleteputであるかを識別するのに役立ちますapplication.html.erb

は理想的//= require jquery_ujsapplication.jsに必要とされます。レイアウトで

<%= javascript_include_tag 'application' %> 

を持っていないです。あなたは

<%= javascript_include_tag :default %> 

<%= javascript_include_tag 'application' %> 

を変更しているだろうと

のでjquery_ujsは動作しません! get要求&コントローラはshowアクション代わりのdestroyアクションにマップとして

ので、delete要求が受け入れられています。

0

メソッドを削除し、あなたのルートを見て、常に

をOBJECT_ID運ぶあなたは両方の方法を試すことができます:

<%= link_to 'Delete', event_path(event.id), data: { confirm: 'Are you sure?' }, method: :delete %> 

または

<%= link_to 'Delete', event_path(event), data: { confirm: 'Are you sure?' }, method: :delete %> 
関連する問題