Guys, I have a need to support as has_many/belongs_to relationship on a legacy(kind of) schema. The reason I say kind of is that the schema does have "id" columns that are used in many associations, but this particular has_many/belongs_to association needs to support different ones. I''ve attached to code at the end of this email. Suffice it to say I need to use the standard "id" columns in most associations within the application, but for this particular MajicEmployee to GateClockEmployee relationship, I need to use two non-standard columns for joining. The :finder_sql option solves this problem for me on the has_many side, but belongs_to doesn''t seem to support :finder_sql (although I''ve included it in the below code to illustrate what I''m trying to do). Can anyone tell me how I can get the belongs_to side working so I can query from that side as well? Any help will be GREATLY appreciated. Thanks! JB class MajicEmployee < ActiveRecord::Base has_many :majic_entries has_many :gate_clock_employees, :finder_sql=>''select * from gate_clock_employees where emplasci=#{number}'' end class GateClockEmployee < ActiveRecord::Base has_many :gate_clock_entries belongs_to :majic_employee, :finder_sql=>''select * from majic_employees where number=#{emplasci}'' end gateclock=# \d gate_clock_employees Table "public.gate_clock_employees " Column | Type | Modifiers ------------+------------------------+------------------------------------------------------------------- id | integer | not null default nextval(''gate_clock_employees_id_seq''::regclass) tagnum | integer | pin | character varying(255) | lastname | character varying(255) | firstname | character varying(255) | mi | character varying(255) | dept | character varying(255) | title | character varying(255) | tel_ext | character varying(255) | employe_no | integer | parking_id | integer | vehicle_1 | character varying(255) | vehicle_2 | character varying(255) | user_1 | text | user_2 | text | user_3 | text | user_4 | text | user_5 | text | user_6 | text | user_7 | text | usernum | integer | usrgrp_id | character varying(255) | location | character varying(255) | u_photo | character varying(255) | emplasci | integer | gateclock=# \d majic_employees Table "public.majic_employees" Column | Type | Modifiers --------+---------+-------------------------------------------------------- id | integer | not null default nextval(''employees_id_seq''::regclass) number | integer | --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Anyone? Surely someone else has faced a similar situation? Thanks, JB --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Mark Reginald James
2006-Nov-01 00:17 UTC
Re: It this possible: finder_sql-like behavior for belongs_to?
J B wrote:> I have a need to support as has_many/belongs_to relationship on a > legacy(kind of) schema. The reason I say kind of is that the schema does > have "id" columns that are used in many associations, but this > particular has_many/belongs_to association needs to support different ones. > > I''ve attached to code at the end of this email. Suffice it to say I need > to use the standard "id" columns in most associations within the > application, but for this particular MajicEmployee to GateClockEmployee > relationship, I need to use two non-standard columns for joining. > > The :finder_sql option solves this problem for me on the has_many side, > but belongs_to doesn''t seem to support :finder_sql (although I''ve > included it in the below code to illustrate what I''m trying to do). > > Can anyone tell me how I can get the belongs_to side working so I can > query from that side as well? > > Any help will be GREATLY appreciated. > > Thanks! > JB > > class MajicEmployee < ActiveRecord::Base > has_many :majic_entries > has_many :gate_clock_employees, > :finder_sql=>''select * from gate_clock_employees where > emplasci=#{number}'' > end > > class GateClockEmployee < ActiveRecord::Base > has_many :gate_clock_entries > belongs_to :majic_employee, :finder_sql=>''select * from > majic_employees where number=#{emplasci}'' > endTry replacing the finder_sql for both associations with a :conditions option :conditions => ''emplasci=#{number}'' :conditions => ''number=#{emplasci}'' -- We develop, watch us RoR, in numbers too big to ignore. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---