Rails - 初始化对象实例变量
Rails - initialize object instance variable
我有两个数组,我想在我的 Prediction
模型对象中将其初始化为 []
。
如果我尝试:
def initialize
@first_estimation = []
@last_estimation = []
end
然后我的很多单元测试都失败了。
Failure/Error: assign(:prediction, Prediction.new(
ArgumentError:
wrong number of arguments (1 for 0)
但是,如果我尝试:
def after_initialize
@first_estimation = []
@last_estimation = []
end
然后数组不会被实例化。
如何在不改变任何其他内容的情况下在构造对象时实例化数组?
因为我在这里看到一个括号Prediction.new(
我推断你试图传递参数。
但是你的 initialize
不接受任何 => boom
等等,它是 ActiveRecord 模型吗?
如果是这样,你必须使用:
after_initialize :set_arrays
def set_arrays
@first_estimation = []
@last_estimation = []
end
也可能使用 attr_accessor
,但不知道您期望什么
我有两个数组,我想在我的 Prediction
模型对象中将其初始化为 []
。
如果我尝试:
def initialize
@first_estimation = []
@last_estimation = []
end
然后我的很多单元测试都失败了。
Failure/Error: assign(:prediction, Prediction.new(
ArgumentError:
wrong number of arguments (1 for 0)
但是,如果我尝试:
def after_initialize
@first_estimation = []
@last_estimation = []
end
然后数组不会被实例化。
如何在不改变任何其他内容的情况下在构造对象时实例化数组?
因为我在这里看到一个括号Prediction.new(
我推断你试图传递参数。
但是你的 initialize
不接受任何 => boom
等等,它是 ActiveRecord 模型吗?
如果是这样,你必须使用:
after_initialize :set_arrays
def set_arrays
@first_estimation = []
@last_estimation = []
end
也可能使用 attr_accessor
,但不知道您期望什么