ActiveModel (ActiveRecord가 아님)을 사용하는 클래스가 있습니다. 원격 웹 서비스에서 검색된 JSON 객체를 나타냅니다. track 객체는 ReportLayout 객체의 배열을 가지며 각 ReportLayout 객체는 슬롯 배열 등을가집니다. 각 모델 클래스는 'validates_presence_of'등과 같은 간단한 유효성 검사기를 가지고 있습니다.ActiveModel 객체와 그 모든 자식에 대한 계단식 유효성 검사기
트랙 개체부터 시작하여 각 수준의 각 개체를 통과하여 유효성을 검사 한 다음 해당 자식 배열의 유효성을 검사하는 계단식 유효성 검사를 시작하려면 어떻게해야합니까? 스택은 4 레벨만큼 깊어서 곧 2 레벨이 추가됩니다. 이 클래스를 사용하면/하위 수준의 검증을 관련 수행 할 수 있습니다 AssociatedValidator
http://api.rubyonrails.org/classes/ActiveRecord/Validations/AssociatedValidator.html
:
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
는 액티브 클래스에 내장에서 봐, 주권
귀하는 귀하의 협회를 게시하지 않았지만, 수집 한 것으로부터 http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#method-i-validates_associated – Gazler
감사합니다. @Gazler, 하지만 ActiveRecord를 사용하지 않는다고 말한 것처럼 말입니다. 시도 할 때 validates_associated : –