У меня есть контроллер, который строит массив хэша следующим образом:
product_controller.rb
class ProductController < ApplicationController
def product
existing_products = Product.where(abc, deb)
existing_products = mapped_existing_products(existing_products)
some_other_method(existing_products)
render status: :ok,
json: { existingProducts: existing_products }
end
private
def mapped_existing_products(existing_products)
product_mapping = []
existing_products.each do |product|
product_mapping << {
product_id: product.id,
order_id: activity.product_order_id
}
end
product_mapping
end
end
Я новичок в ruby, но из того, что я прочитал, я должен создать сериализаторно сериализатор для модели, и у меня нет сериализатора для продукта, так как я рендерить хэш с новыми атрибутами.
Я пытался создать сериализатор, как показано ниже
class ProductMappingSerializer < ActiveModel::Serializer
attributes :product_id, :order_id
end
и в контроллере
render json: existing_products,
serializer: ProductMappingSerializer,
status: :ok
end
, но когда я проверял его, я получал ошибку
undefined method `read_attribute_for_serialization' for #<Array:0x00007fa28d44dd60>
Как я могу сериализовать атрибуты хэша в визуализированном json?