代码之家  ›  专栏  ›  技术社区  ›  Martin Gordon

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

  •  2
  • Martin Gordon  · 技术社区  · 14 年前

    我正在尝试访问ActiveRecord::Error对象的type属性。我这样做的原因是,我想根据验证失败的类型将用户重定向到不同的页面(一个属性可以通过多种方式使验证失败,因此属性本身是不够的)。

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

    真是太恶心了。有更好的办法吗?

    1 回复  |  直到 14 年前
        1
  •  2
  •   wuputah    14 年前

    看来你最好的办法是延长 ActiveRecord::Errors .

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