Ruby on rails 获取验证错误消息而不保存
在我的注册工作流程中,他们首先起草一篇文章,然后在下一页输入要注册的用户信息Ruby on rails 获取验证错误消息而不保存,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,在我的注册工作流程中,他们首先起草一篇文章,然后在下一页输入要注册的用户信息 Post :belongs_to :user User :has_many :posts 但是@没有创建post错误消息,因为我没有保存@post模型,我只是在检查.valid?。如何在不保存的情况下创建错误消息?根据,一旦您在记录上调用了#valid?或#invalid?,就会填充#errors。如果我正确理解您的问题,您希望在不保存模型的情况下获得错误吗 这正是正在发生的事情@post.valid? 将
Post
:belongs_to :user
User
:has_many :posts
但是@没有创建post错误消息,因为我没有保存@post模型,我只是在检查
.valid?
。如何在不保存的情况下创建错误消息?根据,一旦您在记录上调用了#valid?
或#invalid?
,就会填充#errors
。如果我正确理解您的问题,您希望在不保存模型的情况下获得错误吗
这正是正在发生的事情<代码>@post.valid?
将根据是否存在任何错误返回true或false。如果有错误。它们将被添加到@post.errors
散列中
如果要保存,只需调用@post.save
如果成功保存,则返回true;如果在填充过程中出现错误,则返回false。错误您是正确的。我没有正确显示@post.errors。谢谢对于遇到这个问题的人:推论是,如果在调用
\valid?
(或\save
,等等)之前尝试处理\errors
,那么即使valid?
为false,也可能不会得到任何错误。
# 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