Reputation: 1133
I am trying to use ActiveModel::Serializer in conjunction with a PostgreSQL database.
The problem I am having is that whenever I include a json
type column in a serializer I get:
SystemStackError (stack level too deep):
actionpack (4.0.0) lib/action_dispatch/middleware/reloader.rb:70
I don't want to do this as I need access to the data before returning it.
From schema.rb
:
create_table "jobs", force: true do |t|
t.integer "user_id"
t.string "tool"
t.string "name"
t.json "options"
t.integer "status"
t.string "version"
t.datetime "created_at"
t.datetime "updated_at"
end
job_serializer.rb
:
class JobSerializer < ApplicationSerializer
attributes :id, :tool, :name, :status, :options, :version, :created_at
has_many :inputs, serializer: FileLinkSerializer
end
Works fine if I remove :options
from the attributes but crashes when it is included as above.
Upvotes: 4
Views: 905
Reputation: 1133
The problem is with having a field named options
. I wrapped that field in a field called called tool_options
and everything worked fine.
class JobSerializer < ApplicationSerializer
attributes :id, :tool, :name, :status, :tool_options, :version, :created_at
end
class Job < ActiveRecord::Base
def tool_options
options
end
end
(In reality I'll be changing my schema as its not too late.)
Upvotes: 2