使用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_dateexpiration_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 

我认为这个解决方案非常难看。

我的问题还有其他更简单的解决方案吗? 如何存储单列日期和时间?

提前致谢!

更改从datedatetime expiration date ,以及为什么不使用strftime来格式化输出

例:

 <%= @advertisement.expiration.strftime("%b %d %Y, %H:%M") %> 

另请参见strftime格式含义

expiration date的数据类型从date 更改为datetime