使用before_create Rails 4设置到期日期和时间
我正在为广告添加过期function。 过期应该包含数据和时间像这样: 12.06.12 14:24
在这一点上,我这样做:我在数据库中有额外的列,用于称为到期的广告
before_create :set_expiration_date def set_expiration_date self.expiration = Date.today + 56.days end
这很好用。 现在我想看到这个到期日期。
广告#秀
但它给了我这个2015-02-06
当我将set_expiration_date更改为:
def set_expiration_date self.expiration = Time.now + 56.days end
那仍然像2015-02-06
没有时间。
所以我想知道只有soulution在我的广告表中有两列expiration_date和expiration_time 。
然后在我的模型中有这样的:
before_create :set_expiration_date before_create :set_expiration_time def set_expiration_date self.expiration_date = Date.today + 56.days end def set_expiration_time self.expiration_time = Time.now end
我认为这个解决方案非常难看。
我的问题还有其他更简单的解决方案吗? 如何存储单列日期和时间?
提前致谢!
更改从date
到datetime
expiration
date
,以及为什么不使用strftime
来格式化输出
例:
<%= @advertisement.expiration.strftime("%b %d %Y, %H:%M") %>
另请参见strftime格式含义
将expiration
date
的数据类型从date
更改为datetime
。