我有一个名为Device的类。它有一个模型device.rb
我已设置路由,以便从两个不同的路径调用相同的控制器。即路径:
/driver_api/v1/devices
和
/sender_api/v1/devices
都会调用以下控制器:
/user_api/v1/devices
在我的routes.rb中我有:
namespace :driver_api do
namespace :v1 do
resources :devices, :only => [:create], controller: '/user_api/v1/devices'
end
end
namespace :sender_api do
namespace :v1 do
resources :devices, :only => [:create], controller: '/user_api/v1/devices'
end
end
现在,在我的设备控制器中,我试图调用Device类方法。即在我的控制器中:
class UserApi::V1::DevicesController < ApplicationController
Devise.method_name(input)
end
但是我收到了一个错误:
uninitialized constant UserApi::V1::DevicesController::Device
为什么我收到此错误?
答案 0 :(得分:1)
因为你写了Devise
而不是Device
,这可能是一个很好的理由。
如果这只是问题的一个typpo,这是另一种选择。 当你按照你的方式定义类时,有时会出现某种命名问题(我忽略了为什么会发生这种情况)
尝试通过定义模块来分解类作用域:
module UserApi
module V1
class DevicesController < ApplicationController
# rest
end
end
end