私はデータベースからイベントを選択しています。各要素を 30 回複製し、elem.shedule に異なる日付を設定する必要があります (現在の月 -2013-04-01 .. 2013-04-30 の毎日)。
それは私のコードです(「スケジュール」フィールドは日付です):
daily_events = Events.All
repeated_events = []
for event in(daily_events)
for day in(1..date.end_of_month.day)
repeat_event = event
repeat_event.shedule = Date.new(date.year, date.month, day)
repeated_events << repeat_event
end
end
しかし、結果として、私は各 elem をどこでも 30 回、同じ月の最後の日付 (2013-04-30) で持っています。
修正方法は?
EventsController#index で TypeErrorを設定repeated_events+=repeat_event
する代わりに設定するとrepeated_events << repeat_event
、Event を配列に変換できません (Event#to_ary は NilClass を返します)
要素の内容ではなく、要素への参照だけを複製しているためだと思います。それを修正する方法は何ですか?