Yeah beneath would be better. You just need to ensure they're loaded early enough
Sent from my iPhone On 24 Nov 2008, at 20:56, John Trupiano <[EMAIL PROTECTED]> wrote: > > Hey Frederick, > > When I place the require_dependency statements above my > ApplicationController reference, the initial start of the server blows > up. This sort of makes sense to me, because as application.rb is > loaded, it will encounter the require_dependency lines first, which I > believe will try to load those other controllers. Since, at this > point in time, ApplicationController is undefined, LoginController and > Partner::LoginController will both fail because ApplicationController > (their base class) has yet to be defined. > > Make sense? > > Should I put these require_dep lines beneath it? This seems to do the > trick (at least in the short-term). > > For your (and everyone else's) edification, I think this is going to > work. I noticed, as I've been working with this on a staging server > today, that the bug seemed to crop up when I re-deployed. In other > words, fresh deploy (w/ clean apache restart), we're in good shape. > Successive deploy (with app restart via touch tmp/restart.txt), we see > the error. So perhaps it is a passenger-related bug (although I can > definitely recall this happening with a mongrel_cluster solution in > the past as well). > > Well I chucked those two require_dependency lines at the bottom of > application.rb, redeployed (without restarting apache), and voila, the > partner/login page was now loading properly (after failing prior to > the redeployment). So I have my fingers crossed that I haven't merely > been tricked (or rather convinced myself this is the solution) in the > interim. > > Thanks for the guidance Frederick! > > -John > > On Nov 24, 2:35 pm, Frederick Cheung <[EMAIL PROTECTED]> > wrote: >> Sent from my iPhone >> >> On 24 Nov 2008, at 19:06, John Trupiano <[EMAIL PROTECTED]> wrote: >> >> >> >> >> >>> So, to be clear, you're suggesting that I place the following at the >>> top of my application.rb file? >> >>> class ApplicationController < ActionController::Base >>> require_dependency 'partner/login_controller' >>> require_dependency 'login_controller' >> >>> # ... >> >>> end >> >>> Should those calls be inside or outside of the >>> ApplicationController? >>> Also, are the paths correct, or should I fully prefix them with >>> RAILS_ROOT? >> >> Outside the class and you don't need a path or anything> I've never >> directly invoked require_dependency before....for what >>> purposes do you find it useful (aside from a potential solution to >>> my >>> struggles)? >> >> It's like require but plays nicely with the dependencies system. Use >> it whenever you're requiring something that could be magically loaded >> (models, controllers etc) >> >>> Thanks so much! >> >>> -John >> >>> On Nov 24, 1:45 pm, Frederick Cheung <[EMAIL PROTECTED]> >>> wrote: >>>> On 24 Nov 2008, at 18:31, John Trupiano wrote: >> >>>>> One is defined like: >> >>>>> class Partner::LoginController < ApplicationController >> >>>>> end >> >>>>> The other is defined like: >> >>>>> class LoginController < ApplicationController >> >>>>> end >> >>>>> Wonder if wrapping the other in module Partner instead of >>>>> prefixing >>>>> the classname with the module would have any effect... >> >>>> I suspect the complexities of how automatic constant loading work >>>> means that if Partner::LoginController isn't loaded but >>>> LoginController is then it would find the wrong one. using >>>> require_dependency (eg in application.rb) in forcing rails to load >>>> both controllers might help. >> >>>> Fred >> >>>>> -John >> >>>>> On Nov 24, 1:02 pm, Frederick Cheung <[EMAIL PROTECTED]> >>>>> wrote: >>>>>> On 24 Nov 2008, at 17:41, John Trupiano wrote: >> >>>>>>> Also, worth noting that the app is running rails 2.1.0 >>>>>>> currently. I >>>>>>> also had this problem when it was previously running 2.0.2. >>>>>>> Upgrading >>>>>>> to 2.1.2 is potentially an option, but I'm wary of just trying >>>>>>> something like that in production when I don't fully understand >>>>>>> what >>>>>>> the problem is, so I'm holding off on that in the meantime. >> >>>>>> Are the classes both named LoginController or is one of them >>>>>> Partner::LoginController ? >> >>>>>> Fred >> >>>>>>> -John >> >>>>>>> On Nov 24, 12:39 pm, John Trupiano <[EMAIL PROTECTED]> wrote: >>>>>>>> Hi, I've been battling a very strange and irritating bug for a >>>>>>>> long >>>>>>>> time now. The issue is the following: >> >>>>>>>> I have namespaced my controllers in routes.rb >>>>>>>> * map.resources :login, :collection => [:login, :logout] >>>>>>>> * map.namespace :partner do |p| >>>>>>>> p.resources :login, :collection => [:login, :logout] >>>>>>>> end >> >>>>>>>> As such, I have two distinct controllers app/controllers/ >>>>>>>> login_controller and app/controllers/partner/login_controller. >> >>>>>>>> I'm running Apache + Passenger 2.0.3. When apache is freshly >>>>>>>> restarted, requests to /partner/login invoke the proper >>>>>>>> controller. >>>>>>>> However, after some period of time (or some series of >>>>>>>> actions....whatever it is, I cannot isolate it), the wrong >>>>>>>> controller >>>>>>>> will be invoked when requesting /partner/login. >> >>>>>>>> Reaching back into my logs, I see no difference in the logging >>>>>>>> that >>>>>>>> rails performed. >> >>>>>>>> *** Log entry before bug starts showing up >> >>>>>>>> Processing LoginController#index (for xx.xx.xx.xx at 2008-11-24 >>>>>>>> 10:33:26) [GET] >>>>>>>> Session ID: bb63a070c1fa56a703018fa922359146 >>>>>>>> Parameters: {"action"=>"index", "controller"=>"partner/ >>>>>>>> login"} >>>>>>>> Rendering template within layouts/application >>>>>>>> Rendering partner/login/index >>>>>>>> Completed in 0.00188 (531 reqs/sec) | Rendering: 0.00178 >>>>>>>> (94%) | >>>>>>>> DB: >>>>>>>> 0.00180 (95%) | 200 OK [https://myapp/partner/login] >> >>>>>>>> *** Log entry after bug has started showing up >> >>>>>>>> Processing LoginController#index (for xx.xx.xx.xx at 2008-11-24 >>>>>>>> 12:26:35) [GET] >>>>>>>> Session ID: 5bdeff99bd72fe94cb8b80fd9b6beff6 >>>>>>>> Parameters: {"action"=>"index", "controller"=>"partner/ >>>>>>>> login"} >>>>>>>> Rendering template within layouts/static_dashboard >>>>>>>> Rendering login/index >>>>>>>> Completed in 0.00286 (349 reqs/sec) | Rendering: 0.00274 >>>>>>>> (95%) | >>>>>>>> DB: >>>>>>>> 0.00429 (150%) | 200 OK [https://myapp/partner/login] >> >>>>>>>> What kills me is that in parameters, the proper controller/ >>>>>>>> action >>>>>>>> are >>>>>>>> being identified. But if you look at the succeeding lines, >>>>>>>> you'll >>>>>>>> see >>>>>>>> different templates being rendered. >> >>>>>>>> This has been happening to me for quite a while. Even prior to >>>>>>>> moving >>>>>>>> to Passenger quite a while ago, I saw this same bug crop up in >>>>>>>> production when using a mongrel_cluster solution behind Pound. >>>>>>>> So >>>>>>>> I'm >>>>>>>> fairly certain that it's not related to Passenger. I have not >>>>>>>> seen >>>>>>>> it >>>>>>>> arise in my local dev environment (running mongrel). >> >>>>>>>> I realize this is quite the shot in the dark, but I was curious >>>>>>>> if >>>>>>>> anyone had any thoughts whatsoever on the source of this >>>>>>>> problem, >>>>>>>> or >>>>>>>> if you've encountered anything similar in the past. >> >>>>>>>> Thanks for any help. >> >>>>>>>> -John >> >> > > --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk@googlegroups.com 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 -~----------~----~----~----~------~----~------~--~---