嗨,我正在使用 ruby-2.5.0 和 rails 5 开发一个 RoR 项目。我正在为我的 api 使用 jsonapi-serializers。我有一个带有自定义属性的序列化程序,如下所示:-
class ReceiptPartialSerializer
include JSONAPI::Serializer
TYPE = 'receipt'
attribute :id
attribute :receipt_partials
attribute :receipt_partials do
receipt_container = []
object.receipt_partials.each do |partial|
receipt_partial = {}
receipt_partial['id'] = partial.id
receipt_partial['image_url'] = 'https:' + partial&.picture&.url
receipt_container << receipt_partial
end
receipt_container
end
end
我的这个序列化程序的规范文件是:-
RSpec.describe ReceiptPartialSerializer do
let(:id) { 1 }
let(:image_url) { 'https:/images/original/missing.png' }
let(:receipt_id) { 1 }
let(:receipt_partial) do
ReceiptPartial.new(
receipt_id: receipt_id
)
end
subject { JSONAPI::Serializer.serialize(receipt_partial) }
it { is_expected.to have_jsonapi_attributes('image-url' => image_url) }
end
但是当我运行我的测试时,它不包括我的自定义属性,即receipt_partials。
知道如何覆盖我的自定义属性。提前致谢。