我有一个创建动作:
@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方法如果引发异常则返回false,如果不是则返回true,
如果记录无效,create!方法引发异常.
但是,如果数据库中有唯一索引且模型上没有验证集,则create可以抛出ActiveRecord :: RecordNotUnique.在这种情况下,您应该在模型上添加valIDates:fIEldname,uniqueness:true.
总结以上是内存溢出为你收集整理的ruby-on-rails – ActiveRecord创建(不!)在验证时抛出异常全部内容,希望文章能够帮你解决ruby-on-rails – ActiveRecord创建(不!)在验证时抛出异常所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)