Ответ JSON в соответствии с JSON API в контроллере - PullRequest
0 голосов
/ 04 июля 2018

Я создал rails api, чтобы показать мой класс Боттла. В этом классе есть несколько методов для решения проблемы 99Bottles . Например, метод song возвращает полную текст песни. Я намерен вернуть JSON, в соответствии с JSON API , содержащим ответ этого метода.

require_relative '../bottles_logic/bottles'

class SongsController < ApplicationController
  before_action :set_song, only: [:show, :update, :destroy]

  # GET /songs
  def index
    @songs = ::Bottl.new.song

    render json: @songs
  end
end

Используя Почтальон, я получаю 200 статус и полезную нагрузку запроса, однако JSON не отображается из-за syntax error (unexpected 'S').

Мои вопросы:

  • Как вернуть JSON в соответствии с JSON API в этом случае?
  • Нужно ли использовать Serializer для форматирования этого JSON?
  • Я хотел бы вернуть текст в записи json, которая называется whole_song, так что это должен быть атрибут, верно?

1 Ответ

0 голосов
/ 04 июля 2018

Какой класс данных вы храните в @songs? Вы должны передать хеш для отображения метода, например, render json: { key: value }. Если @songs является объектом вашего класса, вы должны попытаться использовать Serializer или @songs.as_json.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...