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?
。如何在不保存的情况下创建错误消息?
答案 0 :(得分:49)
如果我正确理解您的问题,您希望在不保存模型的情况下获得错误吗?
这正是发生的事情。 @post.valid?
将返回true或false,具体取决于是否有任何错误。如果有错误。它们将被添加到@post.errors
哈希。
在您要保存的情况下,只需致电@post.save
如果成功保存则返回true;如果在进程中填充@post.errors
时出现错误,则返回false
答案 1 :(得分:6)
根据documentation,您在记录上致电#valid?
或#invalid?
后,就会填充#errors
。