Несоответствие суперкласса для класса ArtistsController и неинициализированной константы Artist - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь создать API в Rails, и всякий раз, когда я пытаюсь сделать запрос get, он выдает мне сообщение «Несоответствие суперкласса TypeError: для класса ArtistsController».Также кажется, что есть проблема с моделью, так как всякий раз, когда я пытаюсь создать новый объект Artist с Artist.create, он дает мне неинициализированную константу Artist

My Artist_controller.rb

module API
  module V1
    class ArtistsController < ::ApplicationController
      def index
        @artists = Artist.all
        render json: { status: 'Success', data: @artists }
      end
    end
  end
end

My application_controller.rb

class ApplicationController < ActionController::API
end

Мой Artist.rb

class Artist < ApplicationRecord
end

Моя схема.rb

ActiveRecord::Schema.define(version: 20190217083634) do

  create_table "artists", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=latin1" do |t|
    t.string   "name"
    t.text     "bio",            limit: 65535
    t.string   "genre"
    t.integer  "price_per_hour"
    t.datetime "created_at",                   null: false
    t.datetime "updated_at",                   null: false
  end

end

1 Ответ

0 голосов
/ 17 февраля 2019

Поскольку вы находитесь в модуле, Ruby ищет класс API::V1::Artist.

Вы должны использовать оператор разрешения пространства имен (::), чтобы указать Ruby, что вы хотите использовать классArtist: ::Artist.all

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