从表格数据中取日期,但从实际时间取出时间

时间:2014-04-21 20:21:34

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

在一个表单中,用户还必须指定日期,例如21.04.2014

因此,当将post请求发送到rails-application时,为了保存帖子,请求中还提供了created_at个数据:

post[text]:"First Message"  
post[created_at]:21.04.2014 

所以最后会保存一条消息。现在,当我尝试获取消息的created_at时:

Message.find(1).created_at
>> 2014-04-21 00:00:00

但我希望时间对应于创建消息的实际时间,因此输出必须如下所示:

>> 2014-04-21 19:52:07

如何保存邮件以符合我的概念?感谢

实际我保存了这样的信息:

@user.message.new(message_params) 

def diagnosis_params
  params[:message].permit(:created_at, :text)
end

1 个答案:

答案 0 :(得分:1)

您可以这样做:

dt = Date.parse('21.04.2014')
# => Mon, 21 Apr 2014

tm = Time.zone.now
# => Tue, 22 Apr 2014 00:34:07 MSK +04:00

created_at = DateTime.new(dt.year, dt.month, dt.day, tm.hour, tm.min, tm.sec)
# => Mon, 21 Apr 2014 00:34:07 +0000

不是很优雅,但你可以创建一些实用方法...