类ArtistsController和未初始化的常量Artist的超类不匹配

时间:2019-02-17 10:58:10

标签: ruby-on-rails ruby

我试图在Rails中创建一个API,每当我尝试发出get请求时,它都会给我一个“ TypeError:类ArtistsController的超类不匹配”错误。而且似乎模型也有问题,因为每当我尝试使用Artist.create创建新的Artist对象时,它都会给我未初始化的常量Artist

我的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

我的application_controller.rb

class ApplicationController < ActionController::API
end

我的歌手。rb

class Artist < ApplicationRecord
end

我的schema.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 :(得分:0)

由于您处于模块中,因此Ruby正在寻找类API::V1::Artist

您必须使用名称空间解析运算符(::)向Ruby表示您要使用类Artist::Artist.all