随着从Rails 2迁移到Rails 3,验证错误从ActiveRecord :: Error移动到了ActiveModel :: Errors。
在2验证错误轨道的A型和消息(除其他事项外),你可以通过执行类似检查验证错误的类型如下:如何确定ActiveModel :: Errors验证类型
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
这是不是在所有的理想。
问:
是否有轨3.0更好的方式来确定验证错误的类型?
的可能的复制[?如何测试该验证失败的ActiveRecord中(http://stackoverflow.com/questions/4119379/how-to-test-which-验证 - 失败 - 在积极记录) – lulalala 2016-03-18 07:33:31