Fritz Anderson
2008-Nov-11 21:36 UTC
Single-table inheritance: Uninitialized class constant
This forum has been of no help before, but I am nothing daunted. I have a "people" table, mapping to a Person ActiveRecord class, which has two subclasses, Principal and Secondary. There is a type column. There is a "locations" table, mapping to Location. Location belongs_to Principal. Principal has_many Locations. There is a principal_id column in locations. There is a LocationsController. It renders rhtml, which contains something like <%= @location.principal.full_name %> ... to which Rails complains "uninitialized constant Location::Principal". locations_controller.rb does not refer to Principal. The problem must come from the class information in the relationship, or possibly in the STI type information. If I change the belongs_to to: belongs_to :principal, :class_name => "Person", :foreign_key => "principal_id" it works, but this bothers me. It is not what I intend. Locations belong to Principals, not to People in general. The alternative, I think, is to have locations_controller.rb require ''person'', but that gives me problems with reloading in development mode. What should I do? $ ruby --version ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0] $ rails --version Rails 1.2.6 -- 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 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 -~----------~----~----~----~------~----~------~--~---
Frederick Cheung
2008-Nov-11 21:51 UTC
Re: Single-table inheritance: Uninitialized class constant
On 11 Nov 2008, at 21:36, Fritz Anderson wrote:> > The alternative, I think, is to have locations_controller.rb require > ''person'', but that gives me problems with reloading in development > mode. >use require_dependency instead of require (and i would do this at the top of the location model, not in the controller) Fred> What should I do? > > $ ruby --version > ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0] > $ rails --version > Rails 1.2.6 > -- > 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 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 -~----------~----~----~----~------~----~------~--~---
Fritz Anderson
2008-Nov-12 20:18 UTC
Re: Single-table inheritance: Uninitialized class constant
Frederick Cheung wrote:> use require_dependency instead of require (and i would do this at the > top of the location model, not in the controller)This was exactly what I needed. Thank you. It''s too bad that Pickaxe (2nd ed) and Agile Web Development with Rails (2nd ed) didn''t mention require_dependency. Can anyone recommend a reference that would have included it? — F -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Frederick Cheung
2008-Nov-12 22:36 UTC
Re: Single-table inheritance: Uninitialized class constant
On Nov 12, 8:18 pm, Fritz Anderson <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> Frederick Cheung wrote: > > use require_dependency instead of require (and i would do this at the > > top of the location model, not in the controller) > > This was exactly what I needed. Thank you. > > It''s too bad that Pickaxe (2nd ed) and Agile Web Development with Rails > (2nd ed) didn''t mention require_dependency. Can anyone recommend a > reference that would have included it? >Well it''s a rails only thing so the Pickaxe would never cover it and it''s also a bit of slightly hairy internal stuff. "Luke, Use the source!" Fred> — F > -- > Posted viahttp://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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---