acts_as_list
● Gemfile 追記
gem 'acts_as_list'
● インストール
$ bundle install
● モデル修正 app/models/item.rb
class Item < ActiveRecord::Base
acts_as_list
end
14.
jQuery と CoffeeScriptを試す
● CoffeeScript でイベントハンドラ記述 - table.js.coffee に追記
$(document).ready( ->
$(“#itemtbl”).tableDnD( {
onDrop: (table, row) ->
rows = table.tBodies[0].rows
index = -1
for i in [0..rows.length-1]
if rows[i].id == row.id
index = i
$.post “items/#{row.id}/update_order.json”, { index: index }
})
)
15.
update_order アクションの実装
● コントローラ修正 app/controllers/items_controller.rb
def update_order
@item = Item.find(params[:id])
@item.insert_at params[:index]
if @item.save
format.json { head :ok }
else
format.json { render :json => @item.errors, :status => :unprocessable_entity }
end
end
● routing 設定 config/routes.rb
resources :items do
member do
post 'update_order'
end
end