gpt4 book ai didi

ruby-on-rails - ActiveModel::Serializer:如何从分层 Rails 模型中收集验证错误?

转载 作者:行者123 更新时间:2023-12-04 07:39:14 25 4
gpt4 key购买 nike

我有一个层次化的 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 子类可以直接执行此操作。但如果没有,在我创建错误对象时是否有一些方法可以检查序列化程序中定义的关联?

最佳答案

这个问题的最初动机是找到错误序列化的属性。相反,在通过查看上述 Deefour 指出的 GitHub 问题后发现此问题没有解决方案,我们切换到 ActiveRecord::Reflection。查找错误以搜索和序列化错误。

关于ruby-on-rails - ActiveModel::Serializer:如何从分层 Rails 模型中收集验证错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14573163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com