how to truncate tables before seeding data?

I read your post this morning and thought, "WOW! Rails has defined an
approach for seeding data. That's great! I'll have to look into
that." But I didn't have an answer for you. Then later this morning,
I went looking for something I'd seen on Ryan Bates excellent
Railscasts site ( and found episode #179
staring me in the face. I highly recommend watching Ryan's tutorial
on the subject, but I can give you the punchline:
#find_or_create_by_name("blah"), or, alternatetively,



thanks for the link. I'll have a look at it later. Well I know of
Mytable.delete_all but I have like 40 tables already and find it a bit
annoying to write them down by hand. I'm looking for some function that
iterates through all my tables and truncates them.

Something like:
Blabla.allTablesOrModels.each do |t|

If you want to delete all of the data in all of the tables, and you
are using sqlite3, you could just delete db/development.sqlite3 and
then either rerun your migrations, or execute "rake db:schema:load".
If you are using MySQL, then you could probably use PHPMyAdmin or the
command line to delete the data. (You could use the command line to
delete the data in an Sqlite3 database as well.)


ActiveRecord::Base.connection.tables.each do |table|
ActiveRecord::Base.connection.execute(“TRUNCATE #{table}”)

Hope this helps.