Once a month or so, I'd like to pull data from an RSS feed and add it into my database. I've written a rake task that properly reads the feed, parses it and assigns the correct information to new instances of my @event model - when I run the rake task and have it print out the various @event attributes, they're correct. However, when I include the command @event.save nothing happens. In fact, when I added this code if @event.save puts "Event saved" else puts "Event not saved, bummer" I got "Event not saved, bummer" Is it possible to use a rake task to add entries to my application's database? If so, any suggestions as to what I might be doing wrong? I'm testing this in my development environment, and I start my task definition using task (:parse_info => :environment) do Any suggestions would be greatly appreciated. Thanks.
on 2009-01-25 23:45
on 2009-01-26 00:35
Try this and see what is printed: if @event.save puts "Event saved" else puts @event.errors.full_messages.inspect end What you're doing sounds right, most likely though you have a validation that is keeping the model from saving.
on 2009-01-26 02:17
> > What you're doing sounds right, most likely though you have a > validation that is keeping the model from saving. > > or, possibly a before_filter. --wpd
on 2009-01-26 02:27
Yes, thank you so much, that's exactly it! A nil value for one of the attributes was triggering an error, because there's a validation for a maximum value. I gather a maximum value validation requires there to be a value to check and not nil. Changing that attribute to a string="" for all the entries solved the problem.