ruby-on-rails-3 – 如何确定ActiveModel :: Errors验证类型
发布时间:2020-12-17 03:14:44 所属栏目:百科 来源:网络整理
导读:随着从Rails 2迁移到Rails 3,验证错误从ActiveRecord :: Error移动到ActiveModel :: Errors. 在rails 2中,验证错误有一个类型和一条消息(以及其他内容),您可以通过执行以下操作来检查验证错误的类型: rescue ActiveRecord::RecordInvalid = e e.record.erro
随着从Rails 2迁移到Rails 3,验证错误从ActiveRecord :: Error移动到ActiveModel :: Errors.
在rails 2中,验证错误有一个类型和一条消息(以及其他内容),您可以通过执行以下操作来检查验证错误的类型: rescue ActiveRecord::RecordInvalid => e e.record.errors.each do |attr,error| if error.type == :foo do_something end end end 但是使用Rails 3似乎所有东西,但无效的属性和消息已经丢失.因此,确定类型的唯一方法是比较错误消息: rescue ActiveRecord::RecordInvalid => e e.record.errors.each do |attr,error| if error == "foobar" do_something end end end 这根本不是理想的(例如,如果您有多个使用相同消息的验证怎么办?). 题: 解决方法
检查是否已添加?在ActiveModel ::错误:
https://github.com/rails/rails/blob/master/activemodel/lib/active_model/errors.rb#L331 这允许你这样做: record.errors.added?(:field,:error) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |