Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails中填充开发数据库的最佳方法_Ruby On Rails - Fatal编程技术网

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

Ruby on rails 在rails中填充开发数据库的最佳方法,ruby-on-rails,Ruby On Rails,我需要用数据填充测试开发数据库,例如来自factorygirl,但我想从rails控制台使用它。 我如何将示例数据放入数据库中,以便从控制台获取它并在那里进行一些测试?我制作了一个gem,它可以像Factory Girl一样定义大量虚假数据。正确配置后,您可以执行以下操作: # Create 100 fake companies 100.times { Company.create_dummy } # Create a single fake company on-demand fake_co

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

我制作了一个gem,它可以像Factory Girl一样定义大量虚假数据。正确配置后,您可以执行以下操作:

# Create 100 fake companies
100.times { Company.create_dummy }

# Create a single fake company on-demand
fake_company = Company.create_dummy

另一种方法是使用
db/seeds.rb
工具,或者将fixture加载到开发环境中。

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

我喜欢使用Thor或Rake任务来完成这项任务。我用机械师代替工厂女工

您可能需要检查这个答案


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

他使用了一个名为gem的工具,旨在简化用样本数据填充数据库的过程

例如

也是一个很好的解决方案

下面是我的
lib/tasks/sample\u data.rake
的样子。我使用rakedb: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

检查。希望它能帮助你为什么你需要这个在测试数据库中?让它在开发中为你工作不好吗?通常,测试数据库被重置和重新创建的次数太多,以至于没有必要用大量数据预先填充它。我的问题是,我的意思是开发数据库。我应该把这段代码放在哪里?在
seeds.rb
sample_data.rb
?@methyl
seeds.rb
用于应用程序运行所需的真实数据。例如,一份邮政编码、州、国家、税收规则等的清单。@iconoclast在事实发生后差不多7年才回复到今天总比不回复好,嗯?@tadman:时间真有趣。。。但是我从来没有考虑过StackOverflow问题仅仅是基于时间的推移而变得无关紧要,只有当技术变化使这个问题变得无关紧要时,我才会说“从来没有比现在更好”,因为我的评论没有“迟到”的意思(好像我应该在7年前写这篇文章,或者@iconoclast什么的,只是半开玩笑而已。额外的解释总是很感激的,因为它可能会帮助其他人。应该是
lib/tasks/sample\u data.rake
…文件后缀错误,rake找不到这个任务!