Мне нужно заполнить базу данных разработки test данными, например, с factorygirl
, но я бы хотел использовать ее из консоли rails.
Как я помещаю данные примера в db, чтобы я мог извлечь его из консоли и провести там какой-нибудь тест?
Лучший способ заполнить разработку db в рельсах
Ответ 1
Faker также является хорошим решением.
Вот как выглядит мой lib/tasks/sample_data.rake
. Я запускаю его с помощью rake db:populate
.
Создает 50 записей со случайной информацией.
require 'faker'
namespace :db do
desc "Fill database with sample data"
task :populate => :environment do
Rake::Task['db:reset'].invoke
50.times do |n|
name = Faker::Company.name
year = 1900+rand(111)
rating = 1+rand(10)
watched = (1 == rand(2) ? true : false)
imdb_id = rand(1000000)
Movie.create!(:name => name,
:year => year,
:rating => rating,
:watched => watched,
:imdb_id => imdb_id)
end
end
end
Ответ 2
Я сделал драгоценный камень test_dummy, который работает как Factory Девушка, чтобы определить множество поддельных данных. При правильной настройке вы можете делать такие вещи:
# Create 100 fake companies
100.times { Company.create_dummy }
# Create a single fake company on-demand
fake_company = Company.create_dummy
Альтернативой является использование средства db/seeds.rb
или загрузка в ваших светильниках в среду разработки.
Ответ 3
Майкл Хартл дает отличное введение в эту тему в рамках программы railstutorial.org.
Он использует драгоценный камень под названием Factory Girl, который предназначен для облегчения процесса заполнения базы данных образцами данных.
например.
http://ruby.railstutorial.org/chapters/user-microposts#sec:sample_microposts
https://github.com/railstutorial/sample_app/blob/master/lib/tasks/sample_data.rake
Ответ 4
Это только в консоли Rails или просто "с консоли"?
Мне нравится использовать задачу Thor или Rake для этого. Вместо Factory Девушка я использую машиниста.
Вы можете проверить этот ответ
Rails: хороший пример использования Rspec2? (Также: Огурцы, Пикл, Капибара)