Подтвердить что ты не робот

Получать сообщения об ошибках проверки без сохранения

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?. Как создать сообщения об ошибках без сохранения?

4b9b3361

Ответ 1

Если я правильно понял ваш вопрос, вы хотите получить ошибки без сохранения модели?

Это именно то, что происходит. @post.valid?

вернет true или false в зависимости от наличия ошибок. Если есть ошибки. они будут добавлены к хешу @post.errors.

В ситуации, когда вы хотите сохранить только вызов @post.save Он вернет true, если успешно сохранен или false, если ошибки присутствуют при заполнении @post.errors в процессе

Ответ 2

В соответствии с документацией, после того, как вы вызвали #valid? или #invalid? в записи, заполняется #errors.