/ / Sprawdź obecność atrybutu Rails, ale zezwól na pusty ciąg znaków - ruby-on-rails, ruby, sprawdzanie poprawności, activerecord

Sprawdź poprawność atrybutów Railsów, ale zezwól na pusty łańcuch - ruby-on-rails, ruby, validation, activerecord

Chcę sprawdzić, czy atrybut ciągu nie jest równy zero, ale zezwala na puste ciągi.

Jak w:

validates name: not_nil, allow_empty: true

Odpowiedzi:

2 dla odpowiedzi № 1

możesz także:

validates :name, exclusion: { in: [nil] }

1 dla odpowiedzi nr 2

Aby zezwolić na pusty ciąg znaków, ale odrzucić zero w aktywnym wywołaniu zwrotnym sprawdzania poprawności rekordów, użyj warunkowego proc, aby warunkowo wymagać obecności atrybutu, jeśli nie jest to zero.

Kod wygląda więc tak:

validates :name, presence: true, if: proc { name.nil? }

Ale prawdopodobnie chcesz zezwolić na zero. Następnie nie sprawdzaj poprawności. Nadal sprawdź obecność w kodzie w kodzie zerowym lub pustym ciągu.