我需要用数据填充 test 开发数据库,例如来自factorygirl
,但我想从rails console中使用它。
我如何将示例数据放入db中,以便我可以从控制台获取它并在那里进行一些测试?
答案 0 :(得分:18)
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
答案 1 :(得分:2)
我制作了一个像工厂女孩一样的宝石test_dummy来定义大量假数据。正确配置后,您可以执行以下操作:
# Create 100 fake companies
100.times { Company.create_dummy }
# Create a single fake company on-demand
fake_company = Company.create_dummy
另一种方法是使用db/seeds.rb
工具或将您的灯具加载到您的开发环境中。
答案 2 :(得分:2)
作为railstutorial.org计划的一部分,Michael Hartl对此主题进行了精彩的介绍。
他使用名为Factory Girl的宝石,旨在简化使用样本数据填充数据库的过程。
E.G。
http://ruby.railstutorial.org/chapters/user-microposts#sec:sample_microposts
https://github.com/railstutorial/sample_app/blob/master/lib/tasks/sample_data.rake
答案 3 :(得分:1)
它只是在Rails控制台中还是只是'来自控制台'?
我喜欢使用Thor或Rake任务来做到这一点。而不是工厂女孩,我使用机械师。
您可能想查看此答案
Rails: Good Rspec2 example usage? (Also: Cucumber, Pickle, Capybara)