我有一个控制器:
class Api::V1::Account::SharingController < ApplicationController
def show
sharings = Account::Sharing.all
render json: sharings, status: :ok
end
end
模特:
path: models/account/sharing.rb
class Account::Sharing < ActiveRecord::Base
end
路线:
scope '/account' do
resource :sharing, controller: 'account.sharing', path: 'sharings'
end
我收到此错误:uninitialized constant Api::V1::Account::SharingController::Account
,这是因为sharings = Account::Sharing.all
在rails控制台中,我可以使用和获取数据:Account::Sharing.all
为什么会这样?
更新
将文件夹更改为accounts
,现在我的SharingController
位于accounts/sharing_controller.rb
并且正在运行。
答案 0 :(得分:1)
问题是在控制器中它会在控制器的命名空间中搜索Account::Sharing
。尝试使用::
作为前缀,告诉它从“root”命名空间中搜索,如下所示:
::Account::Sharing.all
答案 1 :(得分:0)
yuo需要定义这样的路线。
scope '/api' do
scope '/v1' do
scope '/accounts' do
resource :sharing, controller: 'account.sharing', path: 'sharings'
end
end
end