Ruby on rails 模型编辑表单中的日期格式是否不同?

Ruby on rails 模型编辑表单中的日期格式是否不同?,ruby-on-rails,ruby,ruby-on-rails-3.2,Ruby On Rails,Ruby,Ruby On Rails 3.2,我的一个模型中有一个日期列 create_table "jobs", :force => true do |t| t.date "due_date" end 当我创建一个作业,然后尝试编辑它时,日期的格式与我希望在表单中的格式不同。我想看的是“2012年9月27日”。我实际上看到的是: 我发现这意味着我可以更改初始值设定项中的默认日期格式。在config/initializers/date\u time\u formats.rb中,我有: Date::DATE_

我的一个模型中有一个日期列

  create_table "jobs", :force => true do |t|
    t.date     "due_date"
  end
当我创建一个作业,然后尝试编辑它时,日期的格式与我希望在表单中的格式不同。我想看的是“2012年9月27日”。我实际上看到的是:

我发现这意味着我可以更改初始值设定项中的默认日期格式。在
config/initializers/date\u time\u formats.rb
中,我有:

Date::DATE_FORMATS[:default] = "%d %B %Y"
Date::DATE_FORMATS[:db] = "%d %B %Y"
当我运行rails控制台并检查Date::Date_格式散列时,我看到以下内容(看起来正确):

{:short=>%e%b',:long=>%b%e,%Y',:db=>%d%b%Y',:number=>%Y%m%d',:long\u ordinal=>,:rfc822=>%e%b%Y',:default=>%d%b%Y}
自创建初始值设定项后,我已重新启动服务器


我做错了什么?我使用的是Rails 3.2.7。

使用时间而不是日期:

Time::DATE_FORMATS[:default] = "%d %B %Y"
Time::DATE_FORMATS[:db] = "%d %B %Y"
你也可以使用

@job.due_date.to_s(:default)

强制使用显示的日期格式。

我似乎能使此工作正常的唯一方法是为输入格式伪造一个
表单,并更改默认的日期格式

# config/initializers/date_time_format.rb
Date::DATE_FORMATS[:default] = "%d %B %Y"

# jobs/edit.html.erb
<%= form_for @job do |f| %>
  <%= text_field_tag 'job[due_date]', f.object.due_date %>
<% end %>
\config/initializers/date\u time\u format.rb
日期::日期格式[:默认值]=%d%B%Y
#jobs/edit.html.erb

恐怕不行。即使我使用
时间
在表单中仍然是一样的。我不能像你建议的那样强制日期,因为我正在使用
表单_进行
f.form_字段
最多只接受两个参数。
# config/initializers/date_time_format.rb
Date::DATE_FORMATS[:default] = "%d %B %Y"

# jobs/edit.html.erb
<%= form_for @job do |f| %>
  <%= text_field_tag 'job[due_date]', f.object.due_date %>
<% end %>