Mongoid date_select和validates_presence_of

时间:2013-05-26 06:55:20

标签: validation date mongoid

因此,如果我在表单中使用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,则验证根本不起作用。我可以在不提交任何日期的情况下按提交,并将重定向到错误页面而不是正确的红色警告。

1 个答案:

答案 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变量。