解决了!
孩子们,不要定义read_attribute_for_serialization
返回void
所以我正在尝试将冰糕集成到我的一个 Rails 应用程序中。我已经在 Gemfile 中添加了冰糕
gem "sorbet-runtime", "~> 0.5.5657"
gem "sorbet-rails", "~> 0.6.5.1"
gem "sorbet", "~> 0.5.5657", group: [:development, :test]
一切看起来都不错,我能够在Price
类中添加 sigs 并解决应用程序内的类型检查问题。
我遇到的问题是序列化程序的返回值
所以序列化器看起来大致是这样的
# typed: false
# frozen_string_literal: true
class MySuperAwesomeSerializer < ActiveModel::Serializer
attributes :start_date
has_one :price, serializer: PriceSerializer
end
在规范中,当我想验证关联 ( has_one
) 属性的返回值时,我得到了这个
{
start_date: 2020-05-22,
price: {
total_amount: T::Private::Types::Void::VOID,
taxless_amount: T::Private::Types::Void::VOID,
vat_amount: T::Private::Types::Void::VOID
}
}
价格序列化器看起来大致是这样的
# typed: false
# frozen_string_literal: true
class PriceSerializer < ActiveModel::Serializer
attributes :taxless_amount, :total_amount, :vat_amount
end
我不明白这里到底发生了什么以及为什么发生。提前致谢
编辑:在帖子顶部添加了“解决方案”