获取验证错误消息而不保存

时间:2012-06-12 11:45:00

标签: ruby-on-rails ruby-on-rails-3

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

BUT! @post错误消息未创建,因为我没有保存@post模型我只是检查.valid?。如何在不保存的情况下创建错误消息?

2 个答案:

答案 0 :(得分:49)

如果我正确理解您的问题,您希望在不保存模型的情况下获得错误吗?

这正是发生的事情。 @post.valid?

将返回true或false,具体取决于是否有任何错误。如果有错误。它们将被添加到@post.errors哈希。

在您要保存的情况下,只需致电@post.save 如果成功保存则返回true;如果在进程中填充@post.errors时出现错误,则返回false

答案 1 :(得分:6)

根据documentation,您在记录上致电#valid?#invalid?后,就会填充#errors