rails 控制台中的隐藏日期字段设置属性为 nil(但不在数据库中)
Hidden date field setting attributes to nil in rails console (but not in the database)
我正在尝试将当前日期作为隐藏字段传递到我的表单中。问题是日期被保存到数据库中,但是当我尝试访问它时,它是零。
在我的架构中:
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">
当我尝试访问日期值时,我得到了 nil:
@job.spotlight_start_date
=> nil
这是怎么回事?我的想法可能是隐藏字段将日期保存为字符串,这就是 rails 控制台认为它为零的原因。我已经尝试 'Time.now',并在隐藏字段中放置 'as :date' 但没有成功。
请帮忙!谢谢!
在您的控制台中输入 @job.spotlight_start_date.valid?
如果为假,则输入 @job.spotlight_start_date.errors.full_messages
它应该打印出问题所在。
哎呀我傻了!我在我的模型中设置了 class 方法,其名称与日期属性相同。属性被方法覆盖。我不觉得自己像个傻瓜吗!
非常感谢大家的帮助!
我正在尝试将当前日期作为隐藏字段传递到我的表单中。问题是日期被保存到数据库中,但是当我尝试访问它时,它是零。
在我的架构中:
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">
当我尝试访问日期值时,我得到了 nil:
@job.spotlight_start_date
=> nil
这是怎么回事?我的想法可能是隐藏字段将日期保存为字符串,这就是 rails 控制台认为它为零的原因。我已经尝试 'Time.now',并在隐藏字段中放置 'as :date' 但没有成功。
请帮忙!谢谢!
在您的控制台中输入 @job.spotlight_start_date.valid?
如果为假,则输入 @job.spotlight_start_date.errors.full_messages
它应该打印出问题所在。
哎呀我傻了!我在我的模型中设置了 class 方法,其名称与日期属性相同。属性被方法覆盖。我不觉得自己像个傻瓜吗!
非常感谢大家的帮助!