if @forum.topics.create!(name: params[:topic][:name]) # success,do somethingelse #should handle errors but doesn't render 'new'end
如果我使用.create!方法,它正确地在mongoID模型类上运行验证,但它没有到达else块来显示错误.相反,它返回一个rails错误页面说…
MongoID :: Errors :: topicsController中的验证#create
验证失败 – 名称不能为空.
这很好,但是如何在视图中显示它而不是获得丑陋的rails错误消息页面?
解决方法 试试这种方式:new_topic = @forum.topics.new(name: params[:topic][:name])if new_topic.save # success,do somethingelse render 'new',errors: new_topic.errors.full_messagesend
通过这种方式,您将获得局部变量错误,这是一个Hash格式如下:
new_topic.errors.full_messages # => ["\"name\" can't be blank"]总结
以上是内存溢出为你收集整理的ruby-on-rails – 创建简单的Mongoid验证! – 如何显示错误消息全部内容,希望文章能够帮你解决ruby-on-rails – 创建简单的Mongoid验证! – 如何显示错误消息所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)