【发布时间】:2018-12-05 07:29:44
【问题描述】:
我正在尝试为模块中定义的模型创建一个 api 控制器
模型类:
module Reports
class Report < ActiveRecord::Base
end
end
API 控制器:
class API::V2::ReportsController < API::V2::BaseController
end
路线:
namespace :api, defaults: { format: :json } do
namespace :v2 do
resources :reports
end
end
我尝试调用 api/v2/reports 时遇到的错误是:
LoadError (Unable to autoload constant Report, expected /.../app/models/reports/report.rb to define it):
有没有办法解决这个问题,让 api 控制器寻找 Reports::Report 而不是 Report?
【问题讨论】:
-
没有办法做到这一点。你需要一直写 Reports::Report。但我想知道为什么你需要命名空间模型?
-
@andriy-baran 我必须隔离模型以冲突名称。所以你是说所有模型都应该定义为root??
标签: ruby-on-rails ruby api ruby-on-rails-4