在rails中填充开发数据库的最佳方法

我需要用数据填充测试开发数据库,​​例如从factorygirl ,但我想从rails控制台使用它。
我如何将示例数据放入db中,以便我可以从控制台获取它并在那里进行一些测试?

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 

我做了一个像test Girl一样的gem 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工具或将fixtures加载到开发环境中。

作为railstutorial.org计划的一部分,Michael Hartl对此主题进行了精彩的介绍。

他使用名为Factory Girl的gem,旨在简化使用样本数据填充数据库的过程。

例如

http://ruby.railstutorial.org/chapters/user-microposts#sec:sample_microposts

https://github.com/railstutorial/sample_app/blob/master/lib/tasks/sample_data.rake

它只是在Rails控制台中还是只是“从控制台”?

我喜欢使用Thor或Rake任务来做到这一点。 而不是工厂女孩我使用机械师。

您可能想查看此答案

Rails:良好的Rspec2示例用法? (另外:Cucumber,Pickle,Capybara)