2016-01-18 4 views
0

Я пытаюсь передать текущую дату как скрытое поле в моей форме. Проблема в том, что дата сохраняется в базе данных, но когда я пытаюсь получить к ней доступ, она равна нулю.Скрытые атрибуты настройки поля даты для nil в консоли rails (но нет в базе данных)

В моей схеме:

t.date  "spotlight_start_date" 
t.date  "newsletter_start_date" 
t.date  "social_media_promotion_start_date" 
t.date  "personalized_campaign_start_date" 

Форма: (не имеет значения материал опущен)

<%= form_for @job do |f| %> 
<%= f.hidden_field :spotlight_start_date, value: Time.current %> 
<%= f.hidden_field :social_media_promotion_start_date, value: Time.current %> 
<%= f.hidden_field :newsletter_start_date, value: Time.current %> 
<%= f.hidden_field :personalized_campaign_start_date, value: Time.current %> 
<%= f.submit %> 
<% end %> 

Консоль: (атрибуты даты были сохранены в базе данных)

...spotlight_start_date: "2016-01-18", newsletter_start_date: "2016-01-18", social_media_promotion_start_date: "2016-01-18", personalized_campaign_start_date: "2016-01-18"> 

Когда я пытаюсь получить доступ к значениям даты, я получаю нуль:

@job.spotlight_start_date 
=> nil 

Что происходит? Мои мысли, возможно, в том, что скрытые поля сохраняют дату как строку, поэтому консоль rails думает, что это нуль. Я пробовал «Time.now» и не использовал «date:» в скрытых полях.

Пожалуйста, помогите! Спасибо!

+0

Можете ли вы опубликовать дамп всего объекта @job? – errata

ответ

0

В вашем консольного типа @job.spotlight_start_date.valid?

если ложно, то введите @job.spotlight_start_date.errors.full_messages и он должен напечатать то, что проблема есть.

0

О, я глуп! Я установил методы класса в своей модели с тем же именем, что и атрибуты даты. Эти атрибуты были переопределены методами. Разве я не чувствую себя дураком!

Большое спасибо за помощь ребятам!

+0

Нет проблем! .. сообщения об ошибках указывали на вас в правильном направлении? Бросьте мой голос, если он понравится! Рад, что вы его отсортировали. – RuNpiXelruN

+0

Честно говоря, я просто заметил это сам, но было хорошо помнить, что я могу это сделать, когда у меня будут проблемы в будущем. Еще раз спасибо! –