1

I'm creating standalone rails engine application which will be further added to main application, using mongoid. So, I started like this.

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

Then in the gem file:

gem 'mongoid', "~> 3.0.15"

Then I run this command for generating mongo config file:

some_engine\test\dummy>rails g mongoid:config

which generate mongoid.yml under test/dummy/config folder

Now if I generate some model it's still invoking active record

some_engine>rails generate scaffold post title:string

it gives output:

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

Then I change the rails file under script/rails folder as it's having:

require 'rails/all'

to

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

Then if I generate something it still not invokes mongoid

some_engine>rails generate model post

Nothing happens here.

Also when I run

some_engine>rails generate scaffold post title:string

 invoke  resource_route.....

Is that I'm missing something here to use mongoid with Rails Engine?

joe nayyar
  • 556
  • 1
  • 10
  • 18

2 Answers2

8

It sounds like mongoid still isn't loaded. I'm sorry, but I don't have time to reproduce. What happens if you explicitly require mongoid in the engine.rb file?

astjohn
  • 2,863
  • 1
  • 20
  • 25
1

In Rails 4 if we do not need active_resource.The generated plugin app has rails modules loaded in bin/rails.


require "action_controller/railtie"
require "action_mailer/railtie"
require "sprockets/railtie"
require "rails/test_unit/railtie"
require "mongoid"
require 'rails/engine/commands'
Saurabh Bhatia
  • 327
  • 3
  • 8