【发布时间】:2013-08-13 09:33:47
【问题描述】:
我有一个使用 mongo db 的 rails 项目,并且我编写了一个名为“report_service”的可挂载引擎。
我在 main rails 项目中这样使用它:
gem 'report_service', :git => 'git@xx.com:report_service.git', :branch => :master, :require => false
我不想在 Rails 项目初始化时加载这个 gem,所以我添加了 :require => false 选项。
但是在我的 Rails 控制台中,在我执行 require 'report_service' 之后,我在这个 gem 中找不到模型。
[1] pry(main)> ReportService
=> ReportService
[2] pry(main)> ReportService::Engine
NameError: uninitialized constant ReportService::Engine
from (pry):2:in `<main>'
[3] pry(main)> require 'report_service'
=> true
[4] pry(main)> ReportService::Engine
=> ReportService::Engine
[5] pry(main)> ReportService::RsExam
NameError: uninitialized constant ReportService::RsExam
from (pry):5:in `<main>'
这是我的 report_service gem 目录和代码:
report_service/lib/report_service.rb
require "active_record/railtie"
require "report_service/engine"
module ReportService
end
report_service/lib/report_service/engine.rb
module ReportService
class Engine < ::Rails::Engine
isolate_namespace ReportService
end
end
report_service/app/models/report_service/rs_exam.rb
module ReportService
class RsExam < ActiveRecord::Base
end
end
【问题讨论】:
-
您是否尝试过在初始化时加载您的 gem?然后尝试?
-
去掉':required => false'也没关系,但这不是我想要的
标签: ruby-on-rails-3 mongodb bundle rails-engines