H.J. Blok wrote: > Hello, > > I've a question about Rails 3 Engines. I'm looking everywhere for good > documentation on this subject, but didn't find it. > > I'm trying to create a mountable app (embedding a Rails application in > another Rails application). Both the 'base' application and the > 'embedded' application are created with rails3.0.0.rc. To behave as > Engine the 'embedded' application has the following code in > 'lib/my_engine.rb': > > # lib/my_engine.rb > require "my_engine" > require "rails" > > module MyEngine > class Engine < Rails::Engine > end > end > > In the Gemfile of the 'base' application I've included MyEngine as a > gem, using the path directive (to be able to change code without > rebuilding the gem). > > # Gemfile > gem "my_engine", :path => "../my_engine" > > > When I try to start the 'base' application it raises a NameError: > > uninitialized constant MyEngine::Application (NameError) > > > Does anybody have good (Rails3 RC based) documentation on how to create > a mountable app? > > And what would be the 'Rails-way' of solving this problem? > > Kind regards, > > Harm-Jan
>From the code you posted, I don't see a problem. I would suggest following the structure of each framework and how they use Railties. # lib/my_engine.rb require 'active_support' module MyEngine extend ActiveSupport::Autoload autoload :MyClass autoload :Whatever end # lib/my_engine/engine.rb require 'my_engine' module MyEngine class Engine < Rails::Engine end end And now you have 3 different ways to initialize the engine. If you leave your gem named 'my_engine', you need to put `require 'my_engine/engine'` in lib/my_engine.rb. If you rename your gem to 'myengine', you can require the engine inside of the base app with `require 'my_engine/engine'` inside the bootup or add another file called lib/myengine.rb that only has `require 'my_engine/engine'` in it. -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

