最終的に作ったファイル
app/contorllers/test_controller.rb
class TestController < ApplicationController in_place_edit_for :member, :name in_place_edit_for :member, :atitude def list @members = Member.find(:all , :order => "position") end def add @member = Member.new(params[:member]) @member.save! unless @member.name.blank? redirect_to :action=>'list' end def del Member.find(params[:id]).destroy end def sort params[:members].each_with_index do | member, idx | sort_member = Member.find(member) sort_member.position = idx + 1 sort_member.save end render :nothing => true end end
app/views/test/list.rhtml
<html> <head> <title> 名簿管理アプリケーション </title> <%= javascript_include_tag :defaults %> </head> <body> <hr> <ul id="members"> <% for @member in @members %> <li id="member_<%=@member.id %>" > 名前 : <%= in_place_editor_field :member, 'name' , {}, { :save_text=>"保存", :cancel_text=>"取消" } %> / どんな人 : <%= in_place_editor_field :member, 'atitude' , {}, { :save_text=>"保存", :cancel_text=>"取消" } %> / <%= link_to_remote("削除", :url => { :action => :del,:id => @member.id }) %> </li> <% end %> </ul id="members"> <hr> <%= form_tag :action => 'add' , :id => @member %> <p>名前 <%= text_field 'member','name' %>どんな人 <%= text_field 'member','atitude' %><%= submit_tag '登録' %></p> <%= end_form_tag %> <%= sortable_element 'members',:url => { :action => "sort" } , :complete => visual_effect(:highlight, 'members',:duration => 0.5) %> </body> </html>
app/views/test/del.rjs
page.remove "member_" + params[:id]
app/models/member.rb
class Member < ActiveRecord::Base end
db/migrate/001_create_members.rb
class CreateMembers < ActiveRecord::Migration def self.up create_table :members do |t| t.column :name , :string t.column :atitude , :string t.column :position , :integer end end def self.down drop_table :members end end
これで、サイトが作れます。
ちなみにこのプログラム自体は、勉強会の前日に1時間ぐらいかけて調べつつつくってました。