2013-05-26 22 views
1

所以如果我在表格中使用date_select並且製作模型validates_presence_of :date。我會收到一個錯誤消息:日期不能爲空,即使我已經選擇了一個日期。Mongoid date_select and validates_presence_of

# 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

我找到了解決方案。爲了使date_select與mongoid一起工作,我必須在模型類中包含

include Mongoid::MultiParameterAttributes 

。然後在控制器中,我必須處理日期參數的分解。它有三部分。

"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變量。

+0

只適用於舊版本的Mongoid。瞭解更多[這裏](https://github.com/netguru/mongoid-sadstory) –