Rails3.1.3 中的 insert_fixture

发布于 2025-01-08 00:28:18 字数 1250 浏览 2 评论 0 原文

我正在尝试将一些文件 .yml 导入数据库,但出现错误:

#

我的代码如下:

Provide tasks to load and delete sample user data.
require 'active_record'
require 'active_record/fixtures'

namespace :db do
  DATA_DIRECTORY = "#{Rails.root}/lib/tasks/sample_data"
  namespace :sample_data do
    TABLES = %w(users specs faqs)
    MIN_USER_ID = 1000
    # Starting user id for the sample data
    desc "Load sample data"
    task :load => :environment do |t|
      class_name = nil
      # Use nil to get Rails to figure out the class.
      TABLES.each do |table_name|
        fixture = ActiveRecord::Fixtures.new(ActiveRecord::Base.connection,
        table_name, class_name,
        File.join(DATA_DIRECTORY, table_name.to_s))
        fixture.insert_fixture
        puts "Loaded data from #{table_name}.yml"
      end
    end
    desc "Remove sample data"
    task :delete => :environment do |t|
      User.delete_all("id>= #{MIN_USER_ID}")
      Spec.delete_all("user_id >= #{MIN_USER_ID}")
      Faq.delete_all( "user_id >= #{MIN_USER_ID}")
    end
  end
end

我知道该方法不存在,但是解决方案是什么?

I am trying import some files .yml to database but I get error:

undefined method `insert_fixture' for #<ActiveRecord::Fixtures
(railsspace pag 306)

my code is as follows:

Provide tasks to load and delete sample user data.
require 'active_record'
require 'active_record/fixtures'

namespace :db do
  DATA_DIRECTORY = "#{Rails.root}/lib/tasks/sample_data"
  namespace :sample_data do
    TABLES = %w(users specs faqs)
    MIN_USER_ID = 1000
    # Starting user id for the sample data
    desc "Load sample data"
    task :load => :environment do |t|
      class_name = nil
      # Use nil to get Rails to figure out the class.
      TABLES.each do |table_name|
        fixture = ActiveRecord::Fixtures.new(ActiveRecord::Base.connection,
        table_name, class_name,
        File.join(DATA_DIRECTORY, table_name.to_s))
        fixture.insert_fixture
        puts "Loaded data from #{table_name}.yml"
      end
    end
    desc "Remove sample data"
    task :delete => :environment do |t|
      User.delete_all("id>= #{MIN_USER_ID}")
      Spec.delete_all("user_id >= #{MIN_USER_ID}")
      Faq.delete_all( "user_id >= #{MIN_USER_ID}")
    end
  end
end

I know that the method doesn't exist, but what is the solution?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只等公子 2025-01-15 00:28:18

尝试用fixture.insert_fixtures代替fixture.insert_fixture

Try fixture.insert_fixtures instead of fixture.insert_fixture

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文