我正在尝试访问ActiveRecord :: Error对象的type属性。我这样做的原因是因为我想将用户重定向到另一个页面,具体取决于失败的验证类型(属性可能在几个方面失败验证,因此属性本身不足)。
我发现我能做到这一点的唯一方法是:
obj.errors.instance_variable_get(:@errors)["attr"][0].type
这简直令人讨厌。还有更好的方法吗?
答案 0 :(得分:2)
看起来您最好的选择是延长ActiveRecord::Errors
。
class ActiveRecord::Errors
def error_type(attr)
@errors[attr] && @errors[attr].first.type
end
end