railsでAjaxを使う

railsAjaxを使うための概略をまとめておく。

  1. erbファイルに呼び出し部分を書く。 --> xxx.html.erb
  2. 必要なjavascriptファイルをロードするよう、呼び出し元erbファイルを編集する。
  3. Ajaxで更新する部分を部分テンプレートにする。--> part.html.erb
  4. 部分テンプレートを呼び出すRJSファイルを書く。--> action_name.rjs
  5. 呼び出し側をかく。--> yyy_controller.rb


javascript ファイルの呼び出しはこんな感じ。

<head>
<%= javascript_include_tag :defaults%>
</head>


erbファイルでのAjax呼び出し部分はこんな感じ。
form_remote_tag を使った。

<% form_remote_tag(
   :url => {:action => :watch_video, :vid => entry.id}) do %>
   <%= submit_tag "watch" %>
<% end %>

link_to_remote というメソッドもある。


controller では画面に表示する情報を編集して、RJSファイルに引き渡す。

respond_to do |format|
  format.js # { render :action => "#{action_name}.rjs" }
end

呼び出しの階層関係は、
browser --> controller --> RJSファイル --> 部分テンプレート --> browser
となる。
ちょっと面倒くさいが、こうすると部分テンプレートを部品化できる。