Как добавить ошибки в класс с помощью модуля «ActiveModel :: Errors» - PullRequest
0 голосов
/ 06 марта 2011

Я использую Ruby on Rails 3 и пытаюсь расширить класс Account в порядке для обработки ошибок "по-Rails" .

В моей модели у меня есть

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 голосов
/ 06 марта 2011

Вы можете просто сделать

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

для получения дополнительной информации, обратитесь к здесь , надеюсь, это поможет =)

...