【问题标题】:activerecord-import gem NoMethodError: undefined method 'import'activerecord-import gem NoMethodError:未定义的方法“导入”
【发布时间】:2012-08-24 15:30:54
【问题描述】:

我正在尝试使用 activerecord-import gem,并按照 wiki 上的说明进行操作,但我得到了 NoMethodError: undefined method 'import' for #<Class:0x8b009b0>。这是我的代码(与wiki中的示例基本相同)

    class ExampleCode
      def self.testing
        orders = []
        10.times do |i|
          orders << Order.new(:raw_data => "order #{i}")
        end

        Order.import orders

      end
    end

我这样调用方法:

ExampleCode.testing

我在 windows、linux 上尝试过使用 sqlite 数据库、mysql 数据库,但仍然没有运气。而且我确定我已经安装了 gem:

actionmailer (3.2.6, 3.2.3, 3.2.1, 3.2.0)
actionpack (3.2.6, 3.2.3, 3.2.1, 3.2.0)
activemodel (3.2.6, 3.2.3, 3.2.1, 3.2.0)
activerecord (3.2.6, 3.2.3, 3.2.1, 3.2.0)
activerecord-import (0.2.10)
activerecord-oracle_enhanced-adapter (1.4.1)
activerecord-sqlserver-adapter (3.2.1)....

我什至尝试使用 require (在安装 gem 时这不应该是必需的。我在其他任何地方都没有看到过这种情况,所以我担心我必须错过一些非常明显的东西

【问题讨论】:

  • 您是否在控制台中运行它?
  • 是的,我在控制台中运行它
  • 如果你将 gem 添加到 Gemfile 并在启动 rails 控制台后安装,则必须重新启动控制台

标签: ruby-on-rails activerecord activerecord-import


【解决方案1】:

你必须导入 active_record 和 activerecord-import

即

require active_record
require activerecord-import

(如 wiki 中所述)

原因是,除非您明确导入这些库,否则 ruby​​ 不会知道它。对于 rails 项目,rails 会为您导入 Gemfile 中提到的所有 gem。

【讨论】:

  • 嗯,我在 Rails 控制台(不仅仅是 irb)中尝试过,所以我不应该要求它们。但我也试过了,没有运气。现在,我直接在 rails 应用程序中尝试它并获得相同的 NoMethodError。我在我的模型中添加了 require 方法,在这种情况下,我得到 cannot load such file -- activerecord-import
  • 只有当您的 gemfile 中包含该 gem 时,您的逻辑才成立。你的 gemfile 里有吗?
  • 是的,它肯定在我的 gemfile 中。我不知道可能是什么问题。
  • 对我来说很好用,你能逐步解释一下你的过程吗?
猜你喜欢
  • 2015-03-16
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-10
相关资源
最近更新 更多