Получать сообщения об ошибках проверки без сохранения
Post
:belongs_to :user
User
:has_many :posts
В моем рабочем процессе регистрации они сначала создают сообщение, а затем на следующей странице вводят информацию о пользователе для регистрации.
# intermediate step, validate that Post is valid before moving on to User creation
# posts_controller:
@post = Post.new(params[:post])
if @post.valid?
# go on to create User
else
render 'new'
end
НО! Сообщения об ошибках @post не создаются, так как я не сохраняю модель @post, я просто проверяю .valid?
. Как создать сообщения об ошибках без сохранения?
Ответы
Ответ 1
Если я правильно понял ваш вопрос, вы хотите получить ошибки без сохранения модели?
Это именно то, что происходит. @post.valid?
вернет true или false в зависимости от наличия ошибок. Если есть ошибки. они будут добавлены к хешу @post.errors
.
В ситуации, когда вы хотите сохранить только вызов @post.save
Он вернет true, если успешно сохранен или false, если ошибки присутствуют при заполнении @post.errors
в процессе
Ответ 2
В соответствии с документацией, после того, как вы вызвали #valid?
или #invalid?
в записи, заполняется #errors
.