因此,如果我在表单中使用date_select
并制作模型validates_presence_of :date
。我会收到一个错误说:即使我已经选择了日期,日期也不能为空。
# in the form
<div class="field">
<%= f.label :date %><br />
<%= f.date_select :date %>
</div>
# in the model
validates_presence_of :date
我已经读过mongoid在railscast mongoid截屏中有date_select
的问题,但是,这是一个旧的教程,所以我不确定问题是否仍然存在,因为我似乎无法找到解决方案在线。
如果我使用text_field
,则验证根本不起作用。我可以在不提交任何日期的情况下按提交,并将重定向到错误页面而不是正确的红色警告。
答案 0 :(得分:0)
我找到了解决方案。为了使date_select与mongoid一起工作,我必须包括
include Mongoid::MultiParameterAttributes
在模型类中。然后在控制器中你必须处理date参数的分解。它分为3部分。
"date(1i)"=>"2013", "date(2i)"=>"5", "date(3i)"=>"26"
所以我必须这样做
date = Date.new(params_apt['date(1i)'].to_i, params_apt['date(2i)'].to_i, params_apt['date(3i)'].to_i)
和那个date
变量。