2010-07-03 3 views
0

Я следил за несколькими рельсами в Интернете, и кажется, что для захвата даты я использовал бы помощник 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

+0

. Привет, я подозреваю, что ваш учебник устарел, потому что я не использовал form_for так, как в течение очень долгого времени. Во всяком случае, ваш date_select выглядит нормально. Вы говорите, что это попадает в базу данных, что подразумевает, что она проходит через маршруты и в ваш метод контроллера. Можете ли вы показать метод контроллера и любые соответствующие части модели (т.е. все, что связано с днем ​​рождения и любым attr_accessible или attr_protected) –

+0

В таблице 'users' есть поле' birthday'? Просто спрашиваю. –

ответ

3

Во-первых, убедитесь, что тип поля базы данных установлен в datetime. Если это не так, вы можете изменить его с помощью:

change_column :user, :birthday, :datetime 

После того, как вы сделали это, вы можете использовать datetime_select вместо datetime:

<%= f.datetime_select :birthday%> 
Смежные вопросы