Hi everybody,
I''m working with a legacy schema where they saw fit to underscore 
everything in sight, and I''m wondering if that''s screwing up
my
associations.
I have a table COMMUNITY_TABLE that has a COMMUNITY_ID as well as a 
COMMUNITY_TYPE_ID.  COMMUNITY_TYPE_ID is a pointer to the 
COMMUNITY_TYPE_TABLE, which has a COMMUNITY_TYPE_ID as its primary key, 
as well as a string COMMUNITY_TYPE_TABLE.  I am translating this as 
"CommmunityType has_many Communities, and Community belongs_to 
CommmunityType":
class CommunityType < ActiveRecord::Base
 set_table_name "COMMUNITY_TYPE_TABLE"
 set_primary_key "COMMUNITY_TYPE_ID"
 has_many :communities
end
class Community < ActiveRecord::Base
 set_table_name "COMMUNITY_TABLE"
 set_primary_key "COMMUNITY_ID"
 belongs_to :community_type
end
What I''d like to do is is start at a community type where my title is 
"Private" (for example), and then get all the communities that are of 
that type:
CommunityType.find_by_community_type_title("Private").communities
But this always returns [].  I know I must be missing something but I 
can''t figure out what.  I know that I have data, because I can do this:
Community.find(:first, :conditions=>["community_type_id=?", 
CommunityType.find_by_community_type_title("Private").community_type_id])
and have it return a value.  Similarly I can do this:
Community.find_first.community_type.community_type_title
And have it give back the right answer.  So Community knows that it has 
a pointer into CommunityType, but not the other way around.
Anybody know what probably obvious thing I''ve missed?
Thanks,
 D
-- 
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
-~----------~----~----~----~------~----~------~--~---
First off: Did you have a typo when saying: "s a pointer to the COMMUNITY_TYPE_TABLE, which has a COMMUNITY_TYPE_ID as its primary key, as well as a string COMMUNITY_TYPE_TABLE." did you mean "as a string "COMMUNITY_TYPE_TITLE" ? cos i never saw that title you refer to later anywhere in that explenation Second: I''m pretty new to this stuff myself, so i just throw in my 2 cents, no promise it will work: Tird: try this: class CommunityType < ActiveRecord::Base set_table_name "COMMUNITY_TYPE_TABLE" set_primary_key "COMMUNITY_TYPE_ID" has_many :communities, :foreign_key => "community_type_id" end class Community < ActiveRecord::Base set_table_name "COMMUNITY_TABLE" set_primary_key "COMMUNITY_ID" belongs_to :community_type, :foreign_key => "community_type_id" end i''m not sure if you have to specify :foregn_key in the belongs_to, but for sure in the has_many, cos otherwise Rails would assume that the foreign_key in the COMMUNITY_TABLE would be the primary key "community_id", but its "community_table_id" ... or i got you wrong or all twisted up :-D Give it a shot. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
> as well as a string COMMUNITY_TYPE_TABLE." > did you mean "as a string "COMMUNITY_TYPE_TITLE" ? cos i never saw that > title you refer to later anywhere in that explenationYes, should have said COMMUNITY_TYPE_TITLE. See what I mean about drowning in it? :)> has_many :communities, :foreign_key => "community_type_id" > belongs_to :community_type, :foreign_key => "community_type_id"> i''m not sure if you have to specify :foregn_key in the belongs_to, but > for sure in the has_many, cos otherwise Rails would assume that the > foreign_key in the COMMUNITY_TABLE would be the primary key > "community_id", but its "community_table_id"Didn''t fix it. I''m not sure you''re accurate there, though -- if I''ve said that table B has_many A''s, then I believe the expected behavior is to find B_id inside the A table, not A_id. A_id would be the primary key for A, so B couldn''t use that to find A''s that belonged to B. Thanks for the ideas, D -- 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 -~----------~----~----~----~------~----~------~--~---