У меня проблема с сериализаторами в Rails. Я пытаюсь сделать пользовательский json для своих моделей. Для этого я добавил active_model_serializer в свой Gemfile и написал несколько сериализаторов. Проблема заключается в том, что когда я обрабатываю JSON, он обрабатывает весь мой объект, а не вызывает сериализатор.ActiveModel :: Сериализатор, не используемый при рендеринге JSON
Вот мой код
Serializer Пользователь
class UserSerializer < ActiveModel::Serializer
attributes :id, :email
end
пользователя Модель
# Class model for users
class User < ActiveRecord::Base
...
end
Модель Response
class Response
attr_accessor :status, :data
end
Показать Метод
def send_response(*args)
r = Response.new
r.status = args[0] # This is the HTTP code
r.data = args[1] # This is a user object
render json: r, status: r.status
end
Gemfile
source 'https://rubygems.org'
gem 'rails', '4.2.0'
gem 'pg'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'devise'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'omniauth'
gem 'active_model_serializers'
group :development, :test do
gem 'byebug'
gem 'web-console', '~> 2.0'
gem 'spring'
end
что 'Response'? – apneadiving
Это объект Ruby, который символизирует HTTP-отклик. Я отредактирую вопрос с его кодом, если вы хотите легко его понять. – Aeradriel
Попробуйте это из консоли и опубликуйте свой ответ .. 'puts JSON.pretty_generate (UserSerializer.new (User.first) .serializable_hash)' – errata