2017-08-07 8 views
0

私はすべてのエントリがレールにリストされているインデックスページから削除しようとしています。このエントリを持っている4.トラブル

コントローラコード:

def destroy 
    @entry.destroy 
    respond_to do |format| 
    format.html{ redirect_to :action => :index} 
    end 
    end 

ビューコード:

<%entry ||= Entry.new(:date => Time.new) 
    id = dom_id entry%> 
    -SOME-CODE-IN-HERE 

    <%= link_to image_tag("delete.png"), {:action => :destroy, :id => entry}, 
data:{:confirm => "Are you sure to delete this entry?"}, method: 
:delete, remote: true %> 

私は削除画像をクリックすると、エントリをgデータベースから削除されてもページはリフレッシュされません。ページが手動でリフレッシュされるまで、古い削除されたエントリは引き続き表示されます。エントリが削除された後、自動的にページをインデックスにリダイレクトするのを手伝ってください。どんな助けもありがとう。

+0

についての詳細を読むことができます。(削除) ' –

+0

削除アクションが2回呼び出されています。最初に削除アクションが呼び出され、それが正常に実行された後、再び "ActionController :: RoutingError(パスは[DELETE]"/sheet_entriesと一致しません)という2回目の削除アクションが呼び出されます: " – Archie123

+0

ページをリロードするには 'remote:true'を指定します。そうしないと、削除したレコードをDOMから「隠す」必要があります。 –

答えて

1

remote: trueを使用してサーバーにリモート呼び出しを行っているという問題は、ajax呼び出しを行い、ブラウザに戻しません。

<%= link_to image_tag("delete.png"), {:action => :destroy, :id => entry}, data:{:confirm => "Are you sure to delete this entry?"}, method: :delete %> 

あなたは私はあなたが `%のQ {$( '## {dom_id(@entry)}')で取得したいかわからないんだけどremote-elements