ruby-on-rails – ActiveRecord创建(不!)在验证时抛出异常
发布时间:2020-12-17 02:51:08 所属栏目:百科 来源:网络整理
导读:所以我使用ActiveRecord模型验证来验证RESTful应用程序中的表单. 我有一个创建动作: @association = Association.new 并且表单的接收端使用表单参数创建属性的数据哈希,以使用以下方法保存到数据库: @association = user.associations.create(data) 如果验
所以我使用ActiveRecord模型验证来验证RESTful应用程序中的表单.
我有一个创建动作: @association = Association.new 并且表单的接收端使用表单参数创建属性的数据哈希,以使用以下方法保存到数据库: @association = user.associations.create(data) 如果验证失败,我想简单地渲染创建操作.问题是.create(not!)方法在模型验证失败的情况下抛出异常.例: validates_format_of :url,:with => /(^$)|(^(http|https)://[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(([0-9]{1,5})?/.*)?$)/ix,:message => "Your url doesn't seem valid." 在模型中产生: ActiveRecord::RecordInvalid Exception: Validation failed: Url Your url doesn't seem valid. 我以为.create!应该抛出异常,而.create不是. 我在这里错过了什么吗? Ruby 1.8.7 patchlevel 173&轨道2.3.3 解决方法
请仔细阅读
create和
create!的文档.
create和create!都检查回调(在您的情况下验证). 但是,如果数据库中有唯一索引且模型上没有验证集,则create可以抛出ActiveRecord :: RecordNotUnique.在这种情况下,您应该在模型上添加validates:fieldname,uniqueness:true. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容