0

Railsアプリがあり、削除される前に「よろしいですか」という一般的な削除ダイアログを実行していました。それはすべて問題ありませんが、クリックすると小さなajaxが表示され、すべての情報を含むブロックが削除されます。何が原因で混乱が生じても、ブロックは削除されます。確認記号の後にアクションを条件付きで実行する方法に関するドキュメントをオンラインで見つけることができなかったようです。

私のコードは次のようになりました:

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

ありがとう!

4

3 に答える 3

1

コードを投稿できますか?私はこのようなものがうまくいくと思います:

link_to_remote("Delete item", :url => item_path, :method => 'delete', :confirm => 'Are you sure?')
于 2009-11-05T22:50:32.577 に答える
0

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

http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html#M001645 - 「コールバック」セクションを見てください。

おそらく次のように簡単です。

<%= link_to_remote "Delete", :url => 
   {:controller => "pixel", :action => :destroy, :id => pixel.id}, :confirm => "You sure?",
   :complete =>"$(this).up(0).remove()" %>
于 2009-11-06T04:44:19.040 に答える
0

デフォルトのルート (コントローラー、メソッド、ID) に基づくルートを使用することをお勧めします。理想的には使用しないでください。代わりに、名前付きルートまたはルートを宣言するときに無料で提供される適切な安らかなルートを使用してください (例: マップ)。 .resources :ピクセル)

Rails Routing Guideを読むことを強くお勧めします。これは、何ができるか、そしてどのように行うかについての素晴らしいダイジェストです。

あなたの質問に関しては、あなたが達成しようとしていることはすべて邪魔な JavaScript に基づいています。このlink_to_remote方法が良くないというわけではありませんが、リストを表示している場合は確かに厄介なコードが出力されます。私の意見では、最初にjavascriptを使用せずに実際の例を実装してから、目立たないようにjavascriptを追加すると、よりきれいになります。これによりオーバーヘッドが追加されますか? はい。ただし、コードはよりクリーンになり、すべての行で機能を複製することなく、追加のロジック (削除した行を削除するなど) を簡単に追加できます。

申し訳ありませんが、例を提供するのに十分な時間がありませんが、目立たない javascript rails を単純にグーグルで検索すると、多くの結果が得られますが、ここから始めましょう。

少しトピックから外れていますが、これが役立つことを願っています:)

于 2009-11-06T10:08:50.487 に答える