ActiveModel を使用するクラスがあります (ActiveRecord ではありません)。これは、リモート Web サービスから取得された JSON オブジェクトを表します。トラック オブジェクトには ReportLayout オブジェクトの配列があり、各 ReportLayout オブジェクトにはスロットの配列などがあります。各モデル クラスには、「validates_presence_of」などのいくつかの単純なバリデータがあります。
各レベルで各オブジェクトを通過し、それらを検証してから、子の配列を検証する、追跡オブジェクトから始まるカスケード検証を開始するにはどうすればよいですか? スタックは 4 レベルの深さで、すぐにさらに 2 つのレベルを追加する予定です。
class Track
include ActiveModel::Validations
attr_accessor :name, :report_layouts
validates_presence_of :name
validates_length_of :name, :minimum => 4, :maximum => 256
....
end
class ReportLayout
include ActiveModel::Validations
attr_accessor :name, :slots, :start_date, :end_date
validates_presence_of :name
validates_length_of :name, :minimum => 4, :maximum => 256
....
end
class Slot
...
class SlotModule
ありがとう、ラージ