我有一个问题是了解导致我的值selectedplan
未在我的模型中的set_expiration_date中设置的事件的顺序。
在我的模型中,我有一个设置过期日期的before_create:
selectedplan = ""
before_create :set_expiration_date
def set_expiration_date
puts self.amount_and_duration(selectedplan).second.days // here value is nil
self.expiration = Date.today + self.getAmountAndDuration.second.days
end
...在我的save_with_payment函数中,我的selectedplan变量包含正确的值
def save_with_payment(chosenadduration)
if valid?
selectedplan = chosenadduration
... here value is OK
)
save!
end
但是在set_expiration_date中没有设置。这是为什么?
答案 0 :(得分:0)
我想你应该替换:
selectedplan = chosenadduration
使用:
self.selectedplan = chosenadduration
告诉ruby你没有使用局部变量。
在这种情况下,selectedplan
应为attr_accessor
,根据您的需要进行调整。