virtual attribute with dates
我有一个我想简化的表格。我正在记录一个开始日期和一个结束日期,但想只向用户显示一个开始日期,然后是一个带有天数的下拉列表。
但我的模型和正确存储它时遇到问题。
第一部分有效。
1 2 3 4 | def date=(thedate) #puts the startdate in the correct format... self.startdate = Date.strptime(thedate, '%m/%d/%Y') end |
我遇到的问题与结束日期基于 startdate 的事实有关,no_days 本身就是一个虚拟属性。我尝试将第二部分作为 after_validation 回调,但它似乎不起作用。
1 2 3 4 5 | def set_dates if self.startdate self.enddate = self.startdate + days end end |
首先,为什么你需要在你的开始日期中转换一个日期属性?为什么不在表单中使用类似
然后,在您的模型中,您需要像
您可以通过以下方式设置回调:
1 2 3 4 5 6 7 | after_validation :set_enddate def set_enddate if self.startdate self.enddate = self.startdate + self.number_of_days.days end end |