ruby 从db生成灯具。可读的rake db:fixtures:load

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 从db生成灯具。可读的rake db:fixtures:load相关的知识,希望对你有一定的参考价值。

# lib/tasks/db_fixtures_export.rake
namespace 'db:fixtures' do
  desc "generate fixtures from the current database"

  task :export => :environment do
    Rails.application.eager_load!
    models = defined?(AppicationRecord) ? ApplicationRecord.decendants : ActiveRecord::Base.descendants
    models.each do |model|
      puts "exporting: #{model}"

      # Hoge::Fuga -> test/fixtures/hoge/fuga.yml
      filepath = Rails.root.join('test/fixtures', "#{model.name.underscore}.yml")
      FileUtils.mkdir_p filepath.dirname

      filepath.open('w') do |file|
        hash = {}
        model.find_each do |r|
          key = r.try(:name) || "#{filepath.basename('.*')}_#{r.id}"
          hash[key] = r.attributes.except(:password_digest)
        end
        file.write hash.to_yaml
      end
    end
  end
end

以上是关于ruby 从db生成灯具。可读的rake db:fixtures:load的主要内容,如果未能解决你的问题,请参考以下文章

ruby Rake DB命令

ruby Rake DB命令

ruby db.rake

rake db rake 任务不工作 Ruby 2.4.0 & Rails 5.0.1

如何使用 ruby​​ on rails 生成人类可读的时间范围

尝试使用 Rails 创建数据库时出错,rake db:create