как исправить "Rendered ActiveModel :: Serializer :: Null with Hash" - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь написать API для пользовательской модели, где мне нужно вернуть только два столбца с некоторой модификацией (добавляющая строка)
Все работает нормально, я даже получаю правильный результат, но когда я вижу код состояния, егопоказывает '500', когда я проверяю логи, он показывает следующую ошибку

[active_model_serializers] Rendered ActiveModel :: Serializer :: Null с хешем

следующий код
1. users_controller.rb

class Api::V1::UsersController < Api::V1::ApiController

  # GET
  def pl_details
    render json: {pl: current_user.pl_url, enabled: current_user.personal_calendar_enabled}, status: :success
  end
...
end
user.rb
...
def pl_url
  return "#{Rails.application.secrets.app_host}/#{self.calendar_url_token}"
end
...
user_serializer.rb
class UserSerializer < ActiveModel::Serializer
  attributes :id, :firstname, :lastname, :email
end

1 Ответ

0 голосов
/ 01 апреля 2019

Не берите в голову,
Я просто сделал это иначе, я использовал отдельный сериализатор, чтобы избежать ошибки, следующий подход

class Api::V1::UsersController < Api::V1::ApiController

  # GET
  def pl_details
    render json: current_user,serializer: PLSerializer, status: :success
  end
...
end

и внутри PLSerializer

class PLSerializer < ActiveModel::Serializer
  attributes :pl, :personal_calendar_enabled

  def personal_link
    current_user.pl_url
  end
end
...