Монгоидные проблемы проверки. - PullRequest
1 голос
/ 30 июля 2011

Возникли небольшие проблемы с пониманием mongoid и активной проверкой записей.

Моя модель:

    class Project
        include Mongoid::Document

        field :name
        field :public, :type=>Boolean

        #validation
        validates_acceptance_of :public
    end

И в моем контроллере я звоню:

    Project.create!(:name => 'Test Project', :public => false)

Но я продолжаю получать сообщение об ошибке: Public должно быть принято.

Любые мысли о том, почему я получаю эту ошибку, хотя я создаю запись с логическим значением в открытом поле?

1 Ответ

3 голосов
/ 30 июля 2011

Из тонкой инструкции :

Инкапсулирует образец желания подтвердить принятие флажка условий обслуживания (или аналогичного соглашения).

Идея состоит в том, что они должны установить флажок :public, и это должно привести к истинному значению; но false неверное значение не пройдет валидацию, и валидатор скажет вам, что «Public должен быть принят».

Может быть, вы ищете:

Project.create!(:name => 'Test Project', :public => true)

В документации также сказано:

Эта проверка выполняется, только если terms_of_service не nil ...

И terms_of_service относится к их примеру. Так что вы также можете сделать это:

Project.create!(:name => 'Test Project', :public => nil)
Project.create!(:name => 'Test Project')

если вы хотели получить запись в MongoDB, которая выглядела так, как будто кто-то проскользнул мимо вашей проверки.

...