Rails配置控制器命名空间时出现uninitialized constant Api::Api错误
Rails命名空间控制器路由错误修复
你的问题出在路由配置上:在namespace :api块内,路由的to参数重复添加了api/前缀,导致Rails尝试查找不存在的Api::Api::AuthController,从而抛出uninitialized constant Api::Api错误。
错误的路由代码:
namespace :api do get "auth/register", to: "api/auth#register" end
正确的路由写法:
去掉to参数里的api/前缀即可——namespace :api已经自动为控制器添加了Api::命名空间:
namespace :api do get "auth/register", to: "auth#register" end
补充说明:
你的控制器文件位置和类定义是完全正确的:
- 文件路径:
app/controllers/api/auth_controller.rb - 类定义:
class Api::AuthController < ApplicationController
Rails的命名空间路由会自动关联对应目录下的控制器,在namespace :api块内,指定控制器时只需写相对路径(比如auth#register对应Api::AuthController的register方法),无需重复命名空间前缀。
内容的提问来源于stack exchange,提问作者Noble Eugene
相关产品推荐
相关产品推荐

