I am populating my Rails database using populator, and I have a case where I would like to build a series of records where fields start_date and end_date follow seamlessly from each other (from today back into the past).
Here is a sample of what I'm doing:
# populate.rake
Chain.populate 1 do |ch|
ch.date_end = DateTime.now
ch.date_start = DateTime.civil(DateTime.now.year-rand(40)-1, rand(12)+1, rand(31)+1)
end
Chain.populate 0..10 do |chs|
chs.date_end = Chain.find(:last).date_start
chs.date_start = DateTime.civil(chs.date_end.year-rand(10)-1, rand(12)+1, rand(31)+1)
end
Problem? undefined method 'date_start' for nil:NilClass. I assume the problem is the first Chain record hasn't been saved, so I added:
Chain.save # in between the two loops
This didn't work either. It turns out rake db:populate seems to have many problems with these lines of code, such as invalid date. How can I make this work? Thank you!