проверка валидации:: allow_nil и: включение обоих необходимых одновременно

Обычно поле "вид" должно быть пустым. но если он не пуст, значение должно быть включено в ['a', 'b']

validates_inclusion_of :kind, :in => ['a', 'b'], :allow_nil => true

Код не работает?

Ответ 1

Этот синтаксис будет выполнять проверку включений, позволяя nils:

validates :kind, :inclusion => { :in => ['a', 'b'] }, :allow_nil => true

Ответ 2

В Rails 5 вы можете использовать allow_blank: true вне или внутри блока включения:

validates :kind, inclusion: { in: ['a', 'b'], allow_blank: true }

или

validates :kind, inclusion: { in: ['a', 'b'] }, allow_blank: true

tip: вы можете использовать in: %w(ab) для текстовых значений

Ответ 3

проверьте также: allow_blank => true