If you are using Rails 3.2, you can tell Rails to load your engine before it loads your app like so:
config.railties_order = [ Your::Engine, :main_app, :all ] Then your monkey patching should work. If you are on older versions of Rails you can monkey patch AS::Dependencies like http://www.slideshare.net/AndyMaleh/rails-engine-patterns (Slide 17). You probably want to watch the whole talk by Andy Maleh here. Godfrey On 2012-09-28, at 4:14 AM, Luís Ferreira wrote: > Hum... Haven't thought of that. Thanks. > > Still, this is not the expected behaviour for a ruby class right? Or am I > completly wrong here? > On Sep 28, 2012, at 12:02 PM, Robert Pankowecki wrote: > >> Probably because of the way how Rails is looking for constants ? I would >> guess that it does not read the file from engine at all, and just reads the >> file from your app. >> >> Robert Pankowecki >> http://robert.pankowecki.pl >> >> On Fri, Sep 28, 2012 at 12:59 PM, Luís Ferreira <[email protected]> wrote: >> Hey guys, >> >> I've been working on engines lately and I can't understand why a class in an >> engine can't be monkey patched. Here's an example: >> >> In the engine: >> >> class MyEngine::MyController < ApplicationController >> def index >> @stuff = 1 >> end >> >> def show >> ... something happens ... >> end >> end >> >> In the app including the engine: >> >> class MyEngine::MyController < ApplicationController >> def index >> @stuff = 2 >> end >> end >> >> In this example I would expect for only the index method to be overriden, >> but it seems the entire class is overriden. Is there any reason for this >> behaviour? Is this a feature or a bug? >> >> >> Regards, >> Luís Ferreira >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Core" 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-core?hl=en. >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Core" 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-core?hl=en. > > Cumprimentos, > Luís Ferreira > > > > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Core" 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-core?hl=en. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" 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-core?hl=en.
