У меня есть сгруппированная коллекция, и я хочу сериализовать ее, но она возвращает меня с ошибкой «неопределенный метод« read_attribute_for_serialization »для #». Это мой пример данных без сериализатора:
{
"message": "success",
"data": {
"reports": {
"export": [
{
"name": "Order",
"report_type": "export",
"parameters": "\"{order_date: '10-10-2019'}\"",
},
{
"name": "Order",
"report_type": "export",
"parameters": "\"{order_date: '10-10-2019'}\"",
}],
"import": [
{
"name": "Order",
"report_type": "import",
"parameters": "\"{order_date: '10-10-2019'}\"",
},
{
"name": "Order",
"report_type": "import",
"parameters": "\"{order_date: '10-10-2019'}\"",
}
],
"details": [
{
"name": "Order",
"report_type": "details",
"parameters": "\"{order_date: '10-10-2019'}\"",
},
{
"name": "Order",
"report_type": "details",
"parameters": "\"{order_date: '10-10-2019'}\"",
}
]
}
}
}
Это мой сериализатор:
class ReportSerializer < ActiveModel::Serializer
attributes :id, :name, :report_type, :parameters
def parameters
JSON.parse(object.parameters)
end
end
Это код моего контроллера:
def reports_list
reports = Report.all.group_by(&:report_type)
render_collection(reports, { name: 'reports' }, each_serializer: ReportSerializer)
end
Но верните мне ошибка: undefined method `read_attribute_for_serialization' for #<Hash:0x0000562eebbddee8>
Пожалуйста, помогите. Спасибо.