Допустим, я хочу поставить условие, чтобы новая запись не создавалась, если она возвращает false. Моя настраиваемая проверка не создает откат.
user.rb
class User < ApplicationRecord
validate :test # my custom validation
private
def test
# condition to return false
false
end
end
Стоит ли делать какие-либо другие настройки предварительного просмотра? Спасибо.
он работает, если я поставлю: "def test if record.first_name.size> 0 false end end"
Я полагаю, что он должен содержать некоторые ключевые слова, чтобы быть действительным. Когда я добавляю add_to_base, у нас действительно происходит откат, но это сообщение об ошибке.





Пользовательская проверка должна добавить ошибку в массив ошибок для модели, например:
def test
errors[:base] << "This user is invalid because ..."
end
Метод valid? проверяет наличие ошибок в массиве errors. Его не волнует возвращаемое значение от настраиваемого валидатора.
Спасибо! Это то, что мне нужно было весь этот день!
Что, если вместо
falseтелом вашего методаtestбудетerrors.add_to_base('test')?