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