webcalendar に手を入れてみる
先の実装試験な環境は残しておいて、開発作業用のナニを作成しつつログを残してみます。
以下の手順で
- プロジェクト作成
- DB の準備 (今回は database.yml の記述に倣って webcalendar_development と)
- scaffold の前に model だけは作っとく (これは migrate のため)
- migrate によりテーブルを作成
- ./script/generate scaffold Event
- ./script/generate controller calendar
- 必要なファイルをナニ
- app/helpers/calendar_helper.rb
- app/views/layouts/application.rhtml
- public/stylesheets/calendar.css
- app/controllers/calendar_controller.rb 修正
- app/views/calendar/index.rhtml 作成
- config/routes.rb 修正および public/index.html のリネイム
で動くはず、と。migrate なナニの部分のみをロギング。
model の作成
では、作りましょう。
$ ./script/generate model event exists app/models/ exists test/unit/ exists test/fixtures/ create app/models/event.rb create test/unit/event_test.rb create test/fixtures/events.yml create db/migrate create db/migrate/001_create_events.rb $
ヽ( ・∀・)ノきゅまきゅまー な migration のナニは → http://wota.jp/ac/?date=20050817
で、こんな感じで良いかなぁ。
db/migrate/001_create_events.rb
class CreateEvents < ActiveRecord::Migration def self.up create_table :events do |t| # t.column :name, :string t.column :name, :string t.column :description, :text t.column :startdate, :date end end def self.down drop_table :events end end
で、rake migrate して確認 (ログは略)。database.yml 直すの忘れてる && 上書き保存せずに実行した上、t.column なナニでカンマ (,) を忘れてて不具合。
動作確認 OK であれば、scaffold 作成ですな。
$ ./script/generate scaffold Event exists app/controllers/ exists app/helpers/ create app/views/events exists test/functional/ dependency model exists app/models/ exists test/unit/ exists test/fixtures/ identical app/models/event.rb identical test/unit/event_test.rb identical test/fixtures/events.yml create app/views/events/_form.rhtml create app/views/events/list.rhtml create app/views/events/show.rhtml create app/views/events/new.rhtml create app/views/events/edit.rhtml create app/controllers/events_controller.rb create test/functional/events_controller_test.rb create app/helpers/events_helper.rb create app/views/layouts/events.rhtml create public/stylesheets/scaffold.css $
あとは手続き的に同じ。動作確認したら手を入れていくのですが、とりあえず何をしたモノやら。
前の月、次の月
とりあえず前後の移動はリンクに、という事で link_to を使ってみた。画像になってりゃ格好良いのでしょうが、とりあえずベータ版とゆー事で。
app/views/calendar/index.rhtml
<h1>Dynamic Calendar Example</h1> <table noborder> <tr><td><%= link_to 'before', { :controller => 'calendar', :action => 'index', :year => @year, :month => @month - 1} %> </td><td><%= link_to 'next', { :controller => 'calendar', :action => 'index', :year => @year, :month => @month + 1} %> </td></tr> </table> <%= calendar({:year => @year, :month => @month, :abbrev => (0..-1)}, &@databinder) %>
だからどうした、と言わないで下さい。ただの自己満足ッス。てか、アドレスのナニが変るのって微妙だなぁ。link_to_remote 使えんかなぁ。多分アドレスも変わらんハズ。
そういえば試験が無いな。