views:

17

answers:

0

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!