如何使用'ActiveModel :: Errors'模块将错误附加到类

时间:2011-03-06 12:57:50

标签: ruby-on-rails ruby ruby-on-rails-3 hash activemodel

我正在使用Ruby on Rails 3,我正在尝试按顺序to handle errors "a la Rails way"执行一个类帐户。

在我的模特中我有

class Users::Account
  extend  ActiveModel::Naming
  extend  ActiveModel::Translation
  include ActiveModel::Validations
  include ActiveModel::Conversion

  def persisted?
    false
  end

  attr_reader :errors

  def initialize(attributes = {})
    @errors = ActiveModel::Errors.new(self)

    @firstname = attributes[:firstname]
    @lastname = attributes[:lastname]
    ...
  end
end

我想使用ActiveModel::Errors

在上面的类中“封装”以下哈希
--- 
errors: 
  base: Invalid account.
  firstname: Too short.

这样我就可以在类中插入上面的错误哈希,就像这样

@account.errors # => Hash of errors

测试场景的调试是(总是)以下因为我不知道如何将错误附加到类中。

firstname: T
lastname: Test surname
errors: !omap []

我该怎么做?

1 个答案:

答案 0 :(得分:-1)

你实际上可以做到

somemodel_instance.errors.add(:some_attr, "some error message")

有关详细信息,请参阅here,希望此操作有帮助=)