【问题标题】:get ids as well for all models with seed_dump gem使用 seed_dump gem 获取所有模型的 ID
【发布时间】:2015-01-29 12:05:49
【问题描述】:

您好,我正在使用seed_dump gem 从现有数据创建种子.rb,但我坚持了一件事,我想获取所有模型的 id,以及如果我当前运行,我该如何执行此操作

rake db:seed:dump

我只是得到这样的代码

Product.create(title: "title", description: "text")

但我想要这个

Product.create(id: 1, title: "title", description: "text")

我该怎么做?

【问题讨论】:

    标签: mysql ruby-on-rails activerecord


    【解决方案1】:
    rake db:seed:dump EXCLUDE=[]
    

    这会覆盖 [:id, :created_at, :updated_at] 的默认排除项,使其包含 id

    【讨论】:

    【解决方案2】:

    创建您自己的导出。假设您的模型名称是Country

    lib/tasks/export.rake

    namespace :export do
      desc "Exports data for using in a seeds.rb."
      task :seeds_format => :environment do
        Country.order(:id).all.each do |country|
          puts "Country.create(#{country.serializable_hash.
                delete_if {|key, value| ['created_at','updated_at'].
                include?(key)}.to_s.gsub(/[{}]/,'')})"
        end
      end
    end
    

    你可以用这个命令来运行它:

    rake export:seeds_format > db/seeds.rb
    

    【讨论】:

    • 如果我还想保存我正在使用的密码怎么办
    • 还有回形针,因为我有图片
    • 请为这些主题创建新问题。
    • JaTo 的回答展示了如何使用 seed_dump gem 而不是编写自定义代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 2017-05-04
    • 2019-07-17
    • 2020-12-30
    相关资源
    最近更新 更多