Rails - 初始化对象实例变量

oct*_*ian 1 initialization ruby-on-rails

我有两个数组,我想[]在我的Prediction模型对象中初始化.

如果我尝试:

def initialize
    @first_estimation = []
    @last_estimation = []
end
Run Code Online (Sandbox Code Playgroud)

然后我的许多单元测试都失败了.

 Failure/Error: assign(:prediction, Prediction.new(
     ArgumentError:
       wrong number of arguments (1 for 0)
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试:

def after_initialize
    @first_estimation = []
    @last_estimation = []
end
Run Code Online (Sandbox Code Playgroud)

然后数组不会被实例化.

如何在构造对象时实例化数组而不更改其他内容?

apn*_*ing 5

由于我在这里看到一个括号,Prediction.new(我推断你试图通过参数.

但你initialize不接受任何=>繁荣


但等等,它是ActiveRecord模型吗?

如果是这样,你必须使用:

 after_initialize :set_arrays

 def set_arrays
   @first_estimation = []
   @last_estimation = []
 end
Run Code Online (Sandbox Code Playgroud)

也许attr_accessor也可以使用,但不知道你的期望