個人的には、私は2つのクラスを分割しました。名前と説明を含むEvent
モデルとdatetimeを持つOccurrence
モデルがあります。次にEvent has_many :occurrences
Event
が届いたら、DBに既に存在するかどうかを確認します。その場合は、新しいOccurrence
を作成します。それ以外の場合は、Event
と1つのOccurrence
を作成します。このような
何か(それが動作するように調整 - 私はそれをテストしていない!):
class Event < ActiveRecord::Base
# name:string description:text
has_many :occurrences
end
class Occurrence < ActiveRecord::Base
# event_id:integer date:datetime
belongs_to :event
end
def add_event(params)
ev = Event.find_by_name(params[:name])
if !ev
ev = Event.create!(params)
end
Occurrence.create!(:event => ev, :date => Time.now)
end