Rails: validates_acceptance_of действует как сумасшедший - PullRequest
2 голосов
/ 15 апреля 2010

Что не так с этой картинкой?

Модель:

validates_acceptance_of :terms_of_service, :on => :create, :accept => true, :allow_nil => false
accessor :terms_of_service

Вид:

<%= check_box :organisation,'terms_of_service', {:style => "margin-left:0px"}, 1, 0 %>

А в БД у меня есть organisations.terms_of_service.

Каждый раз, когда я получаю «Условия обслуживания должны быть приняты»

Если я использую

<%= check_box :organisation,'terms_of_service', {:style => "margin-left:0px"}, true, false %>

Проверка по-прежнему не проходит.

Если я выключу: accept => true, проверка кажется пройденной, но когда я смотрю на postgres, он говорит false Разве Rails не должен кастовать это?

Почему я не могу сказать:

Модель:

validates_acceptance_of :terms_of_service, :accept => true

вид:

check_box blah, blah, options, true

и видите правду в моей базе данных?

Есть идеи о том, что происходит?

Соответствующая информация: DB - это Postgres и работает Rails 2.1

Ответы [ 2 ]

4 голосов
/ 15 апреля 2010

Удалите объявление accessor для атрибута TOS.

0 голосов
/ 15 апреля 2010

Попробуйте

<%= check_box :organisation,'terms_of_service', {:style => "margin-left:0px"}, '1', '0' %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...