У меня есть следующий ActiveModel::Serializer
классаПеренастройка ActiveModel :: Serializer вниз от v0.9.2 до 0,8, has_many не сериализован
class MyThingySerializer < ActiveModel::Serializer
root false
attributes :id, :name, :description
has_many :whatsits, embed_namespace: :_embedded
delegate :whatsits, to: :object
end
Он работал отлично под AMS 0.9.2, но для того, чтобы добавить дополнительный атрибут с использованием механизма include_attributename?
Мне сказали вернуться к AMS 0.8
Теперь мои whatsits
не отображаются в моем серийном выходе под атрибутом _embedded
.
Есть ли что-то особенное, что мне нужно сделать, чтобы получить встроенный whatsits
?
Update
Я попытался добавить следующий метод к моему Serializer:
def whatsits
associated = self.class._associations[:whatsits]
associated.options[:root] = associated.options[:embed_namespace]
associated.options[:embed] = :objects
associated.options[:include] = true
object.whatsits
end
Надеясь, что бы получить Serializer испускать whatsits
список под ключ _embedded
, но увы этого Бесполезный 't work ..
АНИ для 0.8 здесь https://github.com/rails-api/active_model_serializers/tree/8d31f7ee8c0ea3ed83ab871765f1444291278b41#embedding-associations нет 'embed_namespace'. Возможно, 'has_many: whatsits, root:: _embedded' – robertjlooby
Увы, без изменения' embed_namespace'' 'root' не помогает. Думаю, мне просто нужно сделать это вручную. Roll on AMS v0.10 –