Folks- I''m in the process of updating from 1.1.6 to 1.2.1. Fixed deprecated stuff, but this one I''m kinda stuck with. I have an application controller that is unable to include a mixin. The dependencies.rb in active support bails with this core message: /usr/lib/ruby/gems/1.8/gems/activesupport-1.4.0/lib/active_support/dependencies.rb:241:in `load_missing_constant'': Mail is not missing constant MailSidebar! (ArgumentError) from /usr/lib/ruby/gems/1.8/gems/activesupport-1.4.0/lib/active_support/dependencies.rb:453:in `const_missing'' from /usr/lib/ruby/gems/1.8/gems/activesupport-1.4.0/lib/active_support/dependencies.rb:471:in `const_missing'' from /home/nwolpert/workspace/lms/config/../app/controllers/mail/mail_type_controller.rb:3 The Controller in this case starts with this: class Mail::MailTypeController < ApplicationController include MailSidebar def index list render :action => ''list'' end And the sidebar is just this: module Mail::MailSidebar SIDEBAR_LINKS = { "Mail Events"=> {:controller => "/mail/sendmail_event", :action => "list"}, "Mail Templates"=> {:controller => "/mail/mail_template", :action => "list"}, "Mail Types"=> {:controller => "/mail/mail_type", :action => "list"} } def sidebar? true end def sidebar_links SIDEBAR_LINKS end end Any thoughts on where to look? Of course, it works fine with Rails 1.1.6. I''ve also noticed a problem where if I comment out all the includes, and run the application, my application_helper methods only work with the first page load, going to any page after the first one for the controller fails until I restart the server. I think there is a problem with something in my environment and mixins, as the application helper is just another module that is ''mixed in''. Thanks for any help people can offer. --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Okay, I ended up solving the first problem by simply using the namespace of the mixin, so the include now looks like this: include Mail::MailSidebar which fixed my test cases. Now, I still have the second problem I mentioned, which still may be related, but I''m not sure how, or even what to show to ask for help. The issue is I have an application helper that makes a set of calls to an object-graph that consists of three different classes. I get the following exception: undefined method `get_locale_strings'' for #<Brand:0xb7922824> which does exist in the Brand class itself. (Remember, first time loading the page this does not happen, only each time after the first) The stack-trace looks like this: /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.1/lib/active_record/base.rb:1848:in `method_missing'' /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.1/lib/active_record/associations/association_proxy.rb:123:in `method_missing'' app/models/organizational_unit.rb:103:in `create_locale_strings'' app/models/brand_maintainer.rb:66:in `get_locale_strings'' app/models/brand_maintainer.rb:54:in `get_locale_strings_by_user_id'' app/models/brand_maintainer.rb:193:in `get_user_locale'' app/models/brand_maintainer.rb:108:in `search_for_locale_string'' app/helpers/application_helper.rb:27:in `locale'' Which is kinda weird to me only that the stack trace doesn''t include the Brand class itself, but that may be not relevant... I''m not sure how the stack propagates with the missing_method. Now, in the class structure, BrandMaintainer is a singleton, OrganizationalUnit contains a single brand... and the brand maintainer is manipulating the OU above. Specifically, in the method where the failure occurs, the following is called: hash = brand.get_locale_strings(lang) and Brand does have in the brand.rb file, a method called: def get_locale_strings(lang=nil) and I can see it called the first time though, but fails on each existing one. Any ideas on where to look for the bug in my code? (Again, this worked in Rails 1.1.6, and I see the problem with Rails 1.2.1) --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
One more thing, then I''ll wait for someone else to respond with an idea on the problem... If I set to cache my classes in config/development.rb, then I don''t get the problem described above. config.cache_classes = true I''m trying to come up with a small test case to show it now. --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Okay, got the fix, figure I''d post this incase anyone else runs into the same problem. Turns out this issue is directly related to the fact that rails doesn''t ''preload'' in Rails 1.2.1 like it did with Rails 1.1.6... and the problem I had was really isolated to a singleton class, my BrandMaintainer, when it used objects that tried to load other objects. Once I added in the ''require'' tags for each model object it needed, it seems to work fine. I''ll be doing more tests and if I find anything else about this, I''ll post it too. On Jan 19, 11:12 am, "Ned Wolpert" <ned.wolp...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> One more thing, then I''ll wait for someone else to respond with an idea > on the problem... > > If I set to cache my classes in config/development.rb, then I don''t get > the problem described above. > config.cache_classes = true > I''m trying to come up with a small test case to show it now.--~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---