I have a grouped collection and I want to serialize it but it returns me with an error 'undefined method `read_attribute_for_serialization' for # '. This is my sample data without serializer:
{
"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'}\"",
}
]
}
}
}
This is my serializer:
class ReportSerializer < ActiveModel::Serializer
attributes :id, :name, :report_type, :parameters
def parameters
JSON.parse(object.parameters)
end
end
This is my controller code:
def reports_list
reports = Report.all.group_by(&:report_type)
render_collection(reports, { name: 'reports' }, each_serializer: ReportSerializer)
end
But return me with an error : undefined method `read_attribute_for_serialization' for #<Hash:0x0000562eebbddee8>
Please help. Thanks.