0


0

私はそれが削除される前に「本当によろしいですか」と一般的な削除ダイアログをしていたRailsアプリを持っています。 これで問題ありませんが、クリックしてすべての情報を含むブロックを削除するための小さなAjaxを作成しました。 混乱を招くものが何であれ、ブロックは削除されます。 確認記号の後に条件付きでアクションを実行する方法に関するオンラインの資料はありませんでした。

私のコードはこんな感じでした:

<%= link_to_remote "削除"、:url => {:controller => "pixel"、:アクション=>:破棄、:id => pixel.id}、:onclick => "$(this).up(0) ).remove() "%>

ありがとうございます。

3 Answer


1


あなたのコードを投稿できますか? 私はこれがうまくいくような何かを想像するでしょう:

link_to_remote( "アイテムの削除"、:url => item_path、:method => 'delete'、:confirm => 'よろしいですか?')


0


今は例を追求する時間がありませんが、アクションが完了した後で、:linkcltoではなく、要素を削除するためにlink_to_remoteに:completeオプションを使用してみてください。

http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html#M001645 - "callbacks"セクションを見てください。

それはおそらく簡単です:

<%= link_to_remote "Delete", :url =>
   {:controller => "pixel", :action => :destroy, :id => pixel.id}, :confirm => "You sure?",
   :complete =>"$(this).up(0).remove()" %>


0


デフォルトのルート(コントローラ、メソッド、ID)に基づくルートを使用せず、代わりに名前付きルートまたはルートを宣言するときに無料で指定されている適切な安静ルートを使用するようにします。 map.resources:ピクセル)

私はhttp://guides.rubyonrails.org/routing.html [the the the rail routing guide]を読むことを強くお勧めします。

あなたの質問に関しては、あなたが達成しようとしているのはすべて目立たないJavaScriptに基づいています。 `link_to_remote`メソッドは素晴らしいとは言えませんが、リストを表示している場合は確かに面倒なコードを出力します。 私は私の考えでは、まずJavaScriptを使用しないで実用的な例を実装し、次に目立たないようにJavaScriptを追加することをお勧めします。 これはオーバーヘッドを追加しますか? はい、しかしあなたのコードはよりきれいになり、すべての行で機能を複製する必要なしにあなたが(あなたが削除した行を削除するような)余分なロジックを簡単に追加することを可能にします。

申し訳ありませんが、例を提供するのに十分な時間がありませんが、控えめなJavaScriptレールを単純にGoogle検索すると多くの結果が得られますが、http://rrn.dk/unobtrusive-javascript-in-rails-using-prototype[here 1があります]始めましょう。

ちょっと話題になっていても、これが役立つことを願っています:)