Поэтому я использую проверки модели ActiveRecord для проверки формы в приложении RESTful.ActiveRecord Создать (не!) Бросок Исключение при проверке
У меня есть создать действие, которое делает:
@association = Association.new
и приемный конец формы создает хэш данных атрибутов из параметров формы для сохранения в базу данных с помощью:
@association = user.associations.create(data)
Я хочу просто выполнить действие create, если проверка не удалась. Проблема в том, что метод .create (not!) Бросает исключение в случаях, когда проверка модели не выполняется. Пример:
validates_format_of :url, :with => /(^$)|(^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$)/ix, :message => "Your url doesn't seem valid."
в модели производит:
ActiveRecord::RecordInvalid Exception: Validation failed: Url Your url doesn't seem valid.
Я думал .create! Предполагается бросить исключение, тогда как .create нет.
Я что-то упустил?
Рубин 1.8.7 173 & номера патчей Рельсы 2.3.3
Как можно определить ложное возвращение создания, когда оно бросает исключения? Нужно ли обрабатывать исключение только для того, чтобы выяснить, что проверка не выполнена? – onyxrev
не совсем корректно, '.create' может вызывать ActiveRecord :: RecordNotUnique, если у вас есть уникальный индекс и нет проверки –