2010-07-03 56 views
0

我在網上跟着幾個rails教程,看來要捕獲一個日期,我會使用date_select助手。但出於某種原因,除了生日之外,所有其他數據都被捕獲到數據庫(SQLite3)中。任何想法我做錯了什麼?如何從軌道窗體捕獲日期信息?

下面是在我看來代碼的形式:

<% form_for :user, :url => {:controller=>'users', :action=> "signup_student"} do |f| %> 
    <div> 
     <%= f.label :last_name, "Last Name" %><br /> 
     <%= f.text_field :last_name, :size => 40 %> 
    </div> 
    <div> 
     <%= f.label :birthday, "Birthday" %> 
     <%= f.date_select :birthday%> 
    </div> 
    <% end %> 

任何想法將真棒。謝謝。

+1

這應該工作如果不是,你可以改變它呢?檢查'生日'列的數據類型它應該是日期或日期時間也請貼上你的'signup_student'方法 – Salil 2010-07-03 05:40:54

+0

嗨,我懷疑你的教程是過時的,因爲我沒有在很長一段時間使用form_for。無論如何,你的date_select看起來沒問題。你說它已經進入了數據庫,這意味着它通過路線進入你的控制器方法。你能否顯示控制器方法和模型的任何相關部分(即處理生日,以及任何attr_accessible或attr_protected的任何事情) – 2010-07-03 06:56:40

+0

'users'表是否有'生日'字段?只是問問。 – 2010-07-03 14:33:09

回答

3

首先,確保您的數據庫字段類型設置爲datetime

change_column :user, :birthday, :datetime 

一旦你做到了這一點,你可以用datetime_select代替datetime

<%= f.datetime_select :birthday%>