Ruby on rails 3 rails中的日期字段和文本输入
我有一个迁移:Ruby on rails 3 rails中的日期字段和文本输入,ruby-on-rails-3,activerecord,internationalization,Ruby On Rails 3,Activerecord,Internationalization,我有一个迁移: def change create_table :tasks do |t| t.date :date, :null => false end end 还有一个观点: <%= form_for @task do |f| %> <%= f.text_field :date %> <% end %> 问题是 为什么对于数据库中已经存在的记录,我使用“2011-12-23 00:00:00”而不是“20
def change
create_table :tasks do |t|
t.date :date, :null => false
end
end
还有一个观点:
<%= form_for @task do |f| %>
<%= f.text_field :date %>
<% end %>
问题是
制作一个助手,它将获取价值并吐出更好的东西
def prettifydate(ugly)
return ugly.strftime('%m.%d.%Y')
end
在表单中,将该值作为helper方法并返回漂亮的字符串
<%= form_for @task do |f| %>
<%= f.text_field :date, :value => prettifydate(@task.date) %>
<% end %>
prettifydate(@task.date)%>
我想您可以使用value选项和i18napi/l帮助器。比如:
<%= f.text_field :date, :value => l(@model.date) %>
这里有两个问题。首先,rails已经有了自己的smth,比如这个助手,所以再做一个不是一个好主意。第二,rails中的i18n引擎不太好。您使用的是什么数据库?我确实执行了,设置了
root:to=>tasks#index
,然后创建了一个新任务,一切都按预期进行(即没有后续的00:00:00)。
# config/locales/your_locale.yml
your_locale:
date:
formats:
# Whatever format that fits your needs
default: "%d/%m%/%Y"