我试图在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
答案 0 :(得分:0)
由于您处于模块中,因此Ruby正在寻找类API::V1::Artist
。
您必须使用名称空间解析运算符(::
)向Ruby表示您要使用类Artist
:::Artist.all