私は小さなDataMapperのようなODMプロジェクトに取り組んでおり、ActiveModel::Validations
コンポーネントを利用しようとしています。ただし、テストの作成中に問題が発生しました。匿名クラスを使用してテストスキーマを構築していますが、バリデーターの実行に関しては、ActiveModel::Name
クラスがエラーをスローしています。
Class name cannot be blank. You need to supply a name argument when anonymous class given
再現する簡単なコード例を次に示します。
require 'active_model'
book_class = Class.new do
include ActiveModel::Validations
validates_presence_of :title
def title; ""; end # This will fail validation
end
book_class.new.valid? # => throws error
例外は、失敗したバリデーターがある場合にのみ発生します-検証エラーメッセージを作成しようとしたときに問題が発生すると推測しています。だから私の質問は:
- たくさん検索しましたが、似たようなことをしようとしている人は見つかりませんでした。これはActiveModelでは単純に不可能ですか、それとも私が知らない回避策がありますか?