2010年9月29日水曜日

event_calendarを使う(2)

eventのnew.html.erbに、all_dayのcheck_boxを作る。チェックされたら終日イベントになる、と。



普通の時刻付きイベントは背景白で開始時刻付き、終日イベントは背景グレーで、角丸で表示されています。

背景の色とかの設定を探してevent_calendar.cssを開いてもそれらしいclassがない。pluginのlib/event_callendar/calendar_helperでは「event.color」というモデルのメンバ(・・・でいいのかな)を使っている。これはどこで定義されているのか探したらlib/event_calendar.rbの中で

# Instance Methods
# Override in your model as needed
module InstanceMethods
def year
date.year
end

def month
date.month
end

def day
date.day
end

def all_day
self[:all_day]
end

def color
self[:color] || '#9aa4ad'
end

def days
end_at.to_date - start_at.to_date
end

となっていました。
rails g event_calendar

するときに、「--use_color」というオプションをつけると簡単に使えるみたいです。あとで使うときはマイグレーションで追加する、でもいいのかな?

このあたりの知識が不確かで、いつも苦労するんだよなあ。

all_dayイベントで何日かにわたるイベントをつくると、カレンダー上でもちゃんと表示されるのがおもしろいですね。このあたりはビューではなく、プログラム上でHTMLを直に書いていくことで実現しているようです。

0 件のコメント:

コメントを投稿