Accessing models in "mounted" Rails 3 app

This is the first time I’m working with Engine’s in Rails, let alone
in Rails 3. I basically followed these steps to set up the mountable
app:
http://blog.dynamic50.com/index.php/2010/02/rails-3-0-mount-multiple-apps-as-engines/

Now that the mountable app is built, I’m moving on to create the
container app. In doing so, however, I am having trouble accessing the
models in the mounted app.

Shop is a model I have the the mounted app, and when I try to access
it in the container app, this is returned:

Shop.first
=> NoMethodError: undefined method `first’ for Shop:Module

Strangely enough, however, 3 of the mounted app’s 19 models are
accessible in the container app. Shop.class.name returns “Module”
while Employee.class.name returns “Class” (Employee is a working model
in the container app).

I’m quite lost on this. Any help is greatly appreciated!

Thanks,
Angelo

Okay, it looks like Rails is pulling an April Fools on me. It like 18
of the 19 models are accessible. I tried to list all the models using:

ActiveRecord::Base.send(:subclasses).each { |model| puts model.name }

and it only returned three of the models. Accessing all the models
directly (typing “Image” in the console, for example) accesses them
correctly.

My Shop model, however, is still causing problems. Shop is definitely
accessible in the mounted app, but acts as if it does not exist in the
container app.

Angelo

I think I just realized why this is happening. The container app is
just a sample for testing out the mounted app, and I named it “Shop”.
I imagine there’s some kind of conflict going on between the Shop
defined in application.rb and the Shop defined in the model.

Gonna go test this now, but I think that pretty much solves this
mystery.