日期未保存在RoR中的正确格式控制器中

时间:2014-01-02 10:12:29

标签: ruby-on-rails ruby ruby-on-rails-3.2

我的控制人员的行动

time = Time.now.strftime("%d-%m-%Y")
  # render text: time
 u=SectionMst.new( :section_name => params[:section_name], :date_added => time , date_updated => time)
  u.save

我的模态代码是

class SectionMst < ActiveRecord::Base
   attr_accessible :date_added, :date_updated, :id, :section_name
end

渲染文本:时间给出了正确的所需格式,但保存为%Y-%m-%d格式 不能为什么?

2 个答案:

答案 0 :(得分:3)

默认db日期格式为:%Y-%m-%d %H:%M:%S。您可以在Time::DATE_FORMATS[:db]中执行rails console来检查此问题。

您可以通过在config/initializers/内的初始化程序文件中定义所选格式来更新此格式。示例:

# config/initializers/date_time_format.rb
Date::DATE_FORMATS[:db] = "%d-%m-%Y"
Time::DATE_FORMATS[:db] = "%d-%m-%Y %H:%M:%S"

答案 1 :(得分:0)

这是您的数据库的问题,实际数据库支持不同格式的日期,当您发送日期时,格式化后将其转换为自己的方式,以避免使用DB函数转换日期。作为date_format(date, format)

例如。 SELECT ProductName, Price, FORMAT(Now(),'YYYY-MM-DD') AS PerDate FROM Products

使sql查询从这个链接中获取帮助

Format used when converting and saving a date string to database with rails