Having trouble with a somewhat unconventional modelling in Rails 2.2.2. Take three table. 1. User model with primary integer id and a unique string guid. 2. Model X has foreign key to User as integer user_id and its model includes belongs_to :users 3. Model Y has foreign key to User as string user_guid and its model includes belongs_to :users, :foreign_key => 'user_guid' This tells Rails which column to use in Model Y to look up Users. But How do I tell Rails which column to use in User? In other words, how do I tell Rails to join (or select) from Users.guid instead of Users.id when referencing Y.user? The has_one and has_many association has a :primary_key option, but this seems to be missing on the belongs_to association How do people work around this? Any help would be greatly appreciated. Thanks, =Blair.
on 2009-04-29 02:38
on 2009-04-29 07:16
On Tue, Apr 28, 2009 at 9:38 PM, blgroup <email@example.com> wrote: > belongs_to :users > > 3. Model Y has foreign key to User as string user_guid and its model > includes > belongs_to :users, :foreign_key => 'user_guid' Are you sure you don't mean: belongs_to :user, :foreign_key => 'user_guid' #<- Using singular 'user' then Y.user should work fine > > How do people work around this? Any help would be greatly > appreciated. > > Thanks, > =Blair. Setup your user model like this: class User < ActiveRecord::Base set_primary_key :guid end Andrew T. http://ramblingsonrails.com http://www.linkedin.com/in/andrewtimberlake "I have never let my schooling interfere with my education" - Mark Twain