2010-07-03 53 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%>