moosan63の日記、技術メモ

日記とか、技術メモとか

railsのform_tagでajax

rails3のform_tagでajaxが簡単に実装できたのでメモ

#view

<%= form_tag(url_path, :remote=>true, :id=>"id_of_form") do %>

で、

:remote=>true

を設定することによってajaxの処理を受け付けるようなフォームにできる。
あとは以下のように普通に書いていき、

          <h3>ご意見ご要望</h3>
          <%= form_tag("/users/inquiry", :remote=>true, :id=>"inq_form") do %>
          <ul>
              <li><%= text_area_tag :user_inquiry %></li>
              <li><%= submit_tag "送信",:id=>"sub_btn" %></li>
          </ul>
          <% end %>

指定されたコントローラーにも、通常通り処理を書く。

ここまででも十分楽にしてくれているけど、更に便利なのが
javascript

        $()           
          .bind("ajax:beforeSend", function(){

          })
          .bind("ajax:success", function(xhr){

          })
          .bind("ajax:complete", function(xhr){

          })
          .bind("ajax:error", function(xhr){

          })
      });

と、イベントの処理を簡単に記述することができる。
あと、もちろんform_forでも使える。