railsでAjaxを使う
- erbファイルに呼び出し部分を書く。 --> xxx.html.erb
- 必要なjavascriptファイルをロードするよう、呼び出し元erbファイルを編集する。
- Ajaxで更新する部分を部分テンプレートにする。--> part.html.erb
- 部分テンプレートを呼び出すRJSファイルを書く。--> action_name.rjs
- 呼び出し側をかく。--> 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
となる。
ちょっと面倒くさいが、こうすると部分テンプレートを部品化できる。