我正在按照一个教程学习API的基础知识,但在设置所有内容时遇到了麻烦。
这是我所做的:
Rails.application.routes.draw do
namespace :api, constraints: {format: :json} do
resources :kittens
end
end
#app/controllers/api/kittens_controller.rb
class API::KittenController < ApplicationController
def index
end
end
#config/initializers/inflections.rb
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'API'
end
我访问/api/kittens时遇到的错误
Unable to autoload constant API::KittensController, expected /media/Volume.II/Dropbox/Web Development/odin-project/3. Ruby on Rails/odin-kittens/app/controllers/api/kittens_controller.rb to define it
Extracted source (around line #495):
else
require_or_load(expanded, qualified_name)
raise LoadError, "Unable to autoload constant #{qualified_name}, expected #{file_path} to define it" unless from_mod.const_defined?(const_name, false)
return from_mod.const_get(const_name)
end
elsif mod = autoload_module!(from_mod, const_name, qualified_name, path_suffix)
任何帮助将非常感激。谢谢。
最佳答案
您的类(class)名称中有一个错字:API::KittenController
而不是API::KittensController
。
关于ruby-on-rails - 无法自动加载常量API::KittensController [Rails],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29448226/