1

I am trying to set up a simple serialization. I have the following code:

def show
  @movie = Movie.find_by(id: params[:id])
  render json: { data: @movie }, serializer: MovieSerializer
end

class Movie < ActiveRecord::Base
  include ActiveModel::Serialization

  belongs_to :genre
  attr_accessor :rating, :plot, :poster
end

class MovieSerializer < ActiveModel::Serializer
  attributes :genre, :id

  belongs_to :genre
  attr_accessor :rating, :plot, :poster

  def genre
    'test'
  end
end

The controller raises an error

render json: { data: @movie }, serializer: MovieSerializer
undefined method `read_attribute_for_serialization' for #<Hash:0x00007fda56b4bc88>

And it seems that object is indeed a hash inside serializer.

Petran
  • 7,677
  • 22
  • 65
  • 104

1 Answers1

0

removing the brackets have fixed the issue.

render json: @movie, serializer: MovieSerializer
Petran
  • 7,677
  • 22
  • 65
  • 104