7

我正在尝试使用 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 时这不应该是必需的。我还没有在其他任何地方看到过这种情况,所以我担心我必须错过一些非常明显的东西

4

2 回答 2

3

您必须导入 active_record 和 activerecord-import

IE

require active_record
require activerecord-import

(如维基中所述)

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

于 2012-08-29T23:56:34.063 回答
0

我遇到了同样的事情;事实证明,至少对我来说,我将 gem 包含在 gemfile 的测试块中。确保当您包含它时,它不仅限于 gem 文件中的一个应用程序环境。

于 2022-02-09T22:46:47.853 回答