Подтвердить что ты не робот

Rails validates_presense не проверяет логическое значение?

Итак, у меня есть форма, использующая логическое выражение для выбора мужчины или женщины. Когда я использую validates: presense для логических полей, он возвращается обратно, пол не может быть пустым! Wehn Я удаляю часть проверки, она позволяет ей проходить через true или false в БД. Это не оставляет его ничто. Я предполагаю, что это проблема, потому что я использую t/f, но я не могу понять, почему. Вот моя модель

class Visit < ActiveRecord::Base
    validates :user_id, :first_name, :last_name, :birthdate, :gender, 
        presence: true
end

И мое представление для поля

<%= f.select :gender, 
    [['Male',false],['Female',true]], :value => false,
    label: "Gender" %>
4b9b3361

Ответ 1

Потому что вы не можете использовать проверку наличия в булевых полях. Вместо этого используйте включение. Смотрите документацию здесь: http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html

Если вы хотите проверить наличие логического поля (где действительные значения являются истинными и ложными), вы захотите использовать validates_inclusion_of: field_name, в: [true, false].)