2013-05-26 2 views
1

Так что если я использую date_select в форме и сделайте модель validates_presence_of :date. Я получу сообщение об ошибке: дата не может быть пустой, хотя я уже выбрал дату.Mongoid date_select и 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 имеет проблемы с date_select в railscast Mongoid скринкаст, однако, это старый учебник, так что я не уверен, если проблема все еще существует, потому что я не могу найти решение онлайн.

Если я использую text_field, валидация не работает вообще. Я могу нажать submit, не помещая никакой даты, и будет перенаправлен на страницу с ошибкой вместо правильного красного предупреждения.

ответ

0

Я нашел решение. Чтобы сделать date_select работать с монгоидом, я должен включить

include Mongoid::MultiParameterAttributes 

в классе модели. Затем в контроллере я должен обработать распад параметра даты. Он пришел в 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 переменной.

+0

Работает только со старыми версиями Mongoid. Подробнее [здесь] (https://github.com/netguru/mongoid-sadstory) –

Смежные вопросы