我有一个分层的 Rails 模型。验证后,模型的每个实例都有一个errors
属性,该属性是验证后的错误数组。这些错误需要序列化为与生成错误的主模型的层次结构相匹配的 JSON 对象。有没有办法利用ActiveModel::Serializer
代码,以便我可以使用已在ActiveModel::Serializer
子类中配置的关联,以便我可以遍历层次模型并将错误提取到对象中以作为 JSON 发送给客户端?
这是我的分层模型:
class Submission < ActiveRecord::Base
has_one :precipitation
end
class Precipitation < ActiveRecord::Base
has_one :precipitation_solid
belongs_to :submission
end
class PrecipitationSolid < ActiveRecord::Base
has_many :precipitation_solid_samples
belongs_to :precipitation
end
class PrecipitationSolidSample < ActiveRecord::Base
belongs_to :precipitation_solid
end
当样本值超出范围时,我想生成以下 JSON
{"submission": {
"precipitation": {
"precipitation_solid": {
"precipitation_solid_samples": [
"accumulation out of range",
"accumulation out of range"
]
}
}
}
也许ActiveModel::Serializer
子类可以直接做到这一点。但如果没有,当我创建错误对象时,是否有某种方法可以检查序列化程序中定义的关联?