2013-07-18 3 views
8

を通じてビューを削除し、更新し、私は次のことをやった:Railsの私はアヤックスを通じて私の見解の一部を更新したい時はいつでも遠い過去ではアヤックス

  1. 私がしたい部分のうち、部分的に作成それにユニークなIDを更新し、与えること、#tracks
  2. は、そのAjax呼び出しのためのコントローラで特別なアクションを作成し、すべての値を更新しremove_trackを言うと言う、などとformat.js
  3. を追加同じで新しいJSファイルを作成しますRailsが自動的に呼び出すようなアクションとしての名前remove_track.js.erb次のようなもの:$('#tracks').html("<%=j render 'cds/show_tracks' %>");
  4. remote: trueこのアクションを呼び出すリンクにあります。

このすべてが細かいですが、今私はAjaxを介して、あるいは、通常のいずれか、このメソッドを呼び出すことができることを意味し、削除して、柔軟性のために定期的なdestroy方法を使用して、共通のindexビューを更新しようとしています。上記のすべてよりも良い方法がなければならないことは、それが普通のことだと思いました。

私は単にコントローラにこれを置くことによって、私のdestroy.js.erbファイルを呼び出すための方法を破壊し得ることができます:

format.js { layout: false } 

とリンク上remote: trueを設定し、もちろんを。

私ができないことは、ビューを更新することです。私が更新したいテーブルは、一意のIDを持つdivに囲まれていますが、部分的なものではないので、コンテンツの更新を拒否します。たぶん私は何かが欠けているでしょう。

は、私は、部分的に作成し、上記の方法でそれを更新する必要が運命か(Turbolinksを使用するよりも、他の)それを行うためのより多くの魔法の方法があるのですか?

ありがとうございました。

PS また、私は、これは、それが唯一の定期的なCRUDルートを使用して破壊するために、オブジェクトIDを通過するので、私は破壊方法のparamsの残りの部分を通過することができない追加の欠点を有している気づきました。しかし、このすべてに、別の欠点がある

No route matches {:action=>"destroy", :controller=>"platforms"} 

私はそれらのパラメータを渡したい場合、私は新しいルートを作成しなければならないことを意味...

:私はplatform(action: destroy)またはplatform(method: delete)を使用しようとすると、私はエラーを取得します私は、destroyメソッドで再びインデックスメソッドにある検索と並べ替えのためのすべてのロジックを再現しています。私はこれが確かにそれを行う方法ではないであると確信しています。このページへの

答えて

19

ありがとう:

http://carmennorahgraydean.blogspot.com.es/2012/10/rails-328-ajax-super-basic-example.html

私はそれを行うための適切な方法を発見しました。とてもシンプルで効果的です。これは他の誰かに役立ちます

希望。

+0

おかげで多くの。これは私のために完全に働きました。あなたは、おそらく受け入れ答えとしてそれをマークするか、ここでの回答でコードを書く必要があります。 – marcamillion

関連する問題