0

私は Ruby on Rails 3 を使用しており、「Rails の方法で」エラーを処理するためにクラス Account を拡張しようとしています。

私のモデルでは

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 []

どうやってやるの?

4

1 に答える 1

-1

あなたは実際にただ行うことができます

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

詳細については、こちらを参照してください。これが役立つことを願っています =)

于 2011-03-06T13:10:08.967 に答える