我有3个模型Currency
,NeuralNetwork
,Prediction
。每种货币都有一个与之相关的神经网络,可以创建预测。
每次调用货币的update
方法时,它都会要求神经网络生成新预测,或者使用已生成的预测。货币has_one
神经网络,has_one
预测。
货币控制人:
def update
if @currency.update(currency_params)
prediction = @currency.neural_network.predict
redirect_to prediction
end
end
神经网络的模型
def predict
if(self.prediction == nil)
#some other code
(0..29).each do |i|
#ASS: I'm getting the data for today at the beginning of the day
self.prediction.exchange_rates << ExchangeRate.new(last: predicted_rates[i], date: Date.today + i + 1, predicted: true)
end
end
p "there are #{self.prediction.exchange_rates.size} predicted rates"
self.prediction
end
我的问题是,如果调用控制器方法两次,则打印以下内容:
there are 30 predicted rates
there are 0 predicted rates
为什么该字段会改变其价值?为什么循环中创建的对象没有被记住?