2011-12-28 24 views
3

我有一個遷移:日期字段和軌道的TextInput

def change 
    create_table :tasks do |t| 
     t.date :date, :null => false 
    end 
    end 

和一個視圖:

<%= form_for @task do |f| %> 
<%= f.text_field :date %> 
<% end %> 

的問題是

  1. 爲什麼我有「2011-12 -23 00:00:00「而不是」2011年12月23日「已經在數據庫中的記錄?在數據庫中,它們處於「2011-12-23」格式。

  2. 如何內部日期,所以我可以有像「12.23.11」日期。

+0

您正在使用什麼數據庫?我執行了[這些命令](https://gist.github.com/d5c2d25df5988b45e163),設置'root:to => tasks#index',然後創建一個新任務,並且所有事情都按預期工作(即沒有結尾00:00 :00)。 – Alex 2012-01-04 10:14:01

回答

6

我想你可以使用值選項和i18n API/l助手。喜歡的東西:

<%= f.text_field :date, :value => l(@model.date) %> 

然後在您的區域設置文件:

# config/locales/your_locale.yml 
your_locale: 
    date: 
    formats: 
     # Whatever format that fits your needs 
     default: "%d/%m%/%Y" 
0

做一個幫手,將採取價值和吐出的東西更好

def prettifydate(ugly) 
    return ugly.strftime('%m.%d.%Y') 
end 

在您的形式,取值爲輔助方法,並返回漂亮的字符串。

<%= form_for @task do |f| %> 
    <%= f.text_field :date, :value => prettifydate(@task.date) %> 
<% end %> 
+0

這裏有兩個問題。首先,鋼軌已經有了像這個幫手那樣的自己,所以製作另一個鋼管並不是一個好主意。其次,i18n發動機在軌道上並不好。 – Ximik 2011-12-31 09:47:14