当我开始编写我的第一个rails API时,我将所有API代码放在app/core/api
目录下,并将其添加到自动加载路径
config.autoload_paths += %W[
#{config.root}/lib
#{config.root}/app/core]
之后,我决定将API类移至app文件夹。现在,当我运行测试时,出现此错误
Failure/Error: authenticate = API::AuthenticateFromToken.(params[:auth_token])
LoadError:
Unable to autoload constant AuthenticateFromToken, expected ./app/api/authenticate_from_token.rb to define it
从令牌进行身份验证如下:
module API
class AuthenticateFromToken
prepend SimpleCommand
def initialize(auth_token)
@auth_token = auth_token
end
def call
# authenticate code
end
end
end
在将api
目录从app/core
移到app
之前,自动加载没有任何问题。这段代码出了什么问题?
答案 0 :(得分:1)
如果该类位于API
模块下,则应将其保存在api
文件夹下。
问题在于,Rails默认情况下会自动加载app
文件夹下的所有文件夹,因此您需要将其放入app/api/api/authenticate_from_token.rb