LoginSignup
18
17

More than 5 years have passed since last update.

RailsでAjaxやるメモ

Last updated at Posted at 2013-09-06

通常のフォームを非同期通信でやるのはこっち:

本稿はフォームとかなし、普通にjQuery.ajax()で送信してどうこうっていうパターンについて。メモ。そのうち清書してブログ記事にしたい。

<div class="item" data-item-id="<%= item.id %>"></div>
  _save: ($item) ->
    id = $item.attr('data-chair-id')
    ($.ajax {
      url: "/chairs/#{id}.json"
      method: 'PATCH'
      data: $.param({
        item: {
          # …
        }
      })

    })
      .error (xhr, status, subject) ->
        alert('ERROR')
        console.error(arguments)
      .complete () =>
        @_stop_loading($item)
    @_start_loading($item)

ほとんどCoffeeScriptを書いただけだけど、Railsっぽいところについて:

  • $.param(obj)で標準的なリクエストパラメーターの形式にする
  • 送信情報はdataじゃなくてdata.itemとかそういうのにする
  • methodは更新なので"PATCH"(Rails3までは"POST")、削除時は"DELETE"
  • 本当はURLもerbとかそういうのでやりたい(このままだとroot_pathが"/"でないとしぬ)
  • 関数を呼ぶところは頑張れ
18
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
17