更好的方法来访问单个Rails ActiveRecord错误?

时间:2010-09-08 19:08:20

标签: ruby-on-rails activerecord

我正在尝试访问ActiveRecord :: Error对象的type属性。我这样做的原因是因为我想将用户重定向到另一个页面,具体取决于失败的验证类型(属性可能在几个方面失败验证,因此属性本身不足)。

我发现我能做到这一点的唯一方法是:

obj.errors.instance_variable_get(:@errors)["attr"][0].type

这简直令人讨厌。还有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

看起来您最好的选择是延长ActiveRecord::Errors

class ActiveRecord::Errors
  def error_type(attr)
    @errors[attr] && @errors[attr].first.type
  end
end