将实例变量初始化为数组 - Ruby

tqu*_*ton 3 ruby initialization instance-variables ruby-on-rails-3.1

我正在尝试初始化和实例变量作为数组,如下所示:

  class Arch < ActiveRecord::Base  
  attr_accessor :name1

    def initialize
      @name1 = []
    end

    def add_name1(t)
      @name1 << t
    end

  end
Run Code Online (Sandbox Code Playgroud)

当我在控制台会话中尝试Arch.new时,我得到(Object不支持#inspect).这是怎么回事?如何创建实例数组变量?我试图按照这种像这样:

class Arch < ActiveRecord::Base
attr_accessor :name1

  def after_initialize
    @name1 = []
  end

  def add_name1(t)
    @name1 << t
  end

end
Run Code Online (Sandbox Code Playgroud)

而我的@ name1仍然是一个NilClass.:/

Iur*_* G. 10

您正在覆盖ActiveRecord的initialize方法.尝试使用super:

def initialize(*args, &block)
   super 
   @name1 = []
end
Run Code Online (Sandbox Code Playgroud)