Создайте файл seed.yml
в каталоге db
.Добавьте документ YAML для каждой модели, которую вы хотите создать.Этот документ должен содержать список хэшей.Каждый хэш должен содержать атрибуты модели.
users:
- login: jake
password: jake123
password_confirmation: jake123
first_name: Jake
last_name: Driver
- login: Jane
password: jane123
password_confirmation: jane123
first_name: Jane
last_name: McCain
categories:
products:
В вашем файле seed.rb
seed_file = File.join(Rails.root, 'db', 'seed.yml')
config = YAML::load_file(seed_file)
User.transaction do
config.keys.each{ |key| key.classify.constantize.create(config[key]) }
end
Мне проще изменить начальные данные в файле YML.Приложение, которое я создал, развернуто другой командой.Им тоже нравится этот подход.
Для очистки данных у меня есть rake task в каталоге lib \ tasks.Я запускаю грабли как app:flush
.
namespace :app do
desc "Flush all the seed data "
task :flush => :environment do
config = YAML::load_file(File.join(Rails.root, 'db', 'seed.yml'))
User.transaction do
config.keys.each{ |table| truncate_table(table)}
end
end
end