1

我正在创建独立的 Rails 引擎应用程序,它将使用 mongoid 进一步添加到主应用程序中。所以,我就这样开始了。

rails plugin new some_engine --mountable --skip-active-record

然后在gem文件中:

gem 'mongoid', "~> 3.0.15"

然后我运行这个命令来生成 mongo 配置文件:

some_engine\test\dummy>rails g mongoid:config

在 test/dummy/config 文件夹下生成 mongoid.yml

现在,如果我生成一些模型,它仍在调用活动记录

some_engine>rails generate scaffold post title:string

它给出输出:

 invoke  active_record
 create    db/migrate/20121219170013_create_some_engine_posts.rb
...........

然后我更改 script/rails 文件夹下的 rails 文件,因为它具有:

require 'rails/all'

require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "sprockets/railtie"
require "rails/test_unit/railtie"

然后,如果我生成一些东西,它仍然不会调用 mongoid

some_engine>rails generate model post

这里什么也没有发生。

当我跑步时

some_engine>rails generate scaffold post title:string

 invoke  resource_route.....

是不是我在这里遗漏了一些将 mongoid 与 Rails 引擎一起使用的东西?

4

2 回答 2

8

听起来像 mongoid 仍然没有加载。对不起,我没有时间重现。如果您在engine.rb文件中明确要求 mongoid 会发生什么?

于 2012-12-19T20:25:43.787 回答
1

在 Rails 4 中,如果我们不需要 active_resource。生成的插件应用程序在 bin/rails 中加载了 rails 模块。


require "action_controller/railtie"
require "action_mailer/railtie"
require "sprockets/railtie"
require "rails/test_unit/railtie"
require "mongoid"
require 'rails/engine/commands'

于 2014-01-07T13:50:11.263 回答