It is indeed redundant to have both #set_primary_key and the :primary_keyoption 
w/in your 
#has_many (or #has_one) calls.

You can safely ignore that aspect of my prior posts :). The real code I 
yanked my examples from actually has a table with a primary key named "ID" 
(so set_primary_key "ID") but has another column "UserID" (that is also 
unique and *could* have been the primary key instead; crazy old db) that for 
all relationships is treated as if it were the primary key.

So, in reality my model is more like this:

class User < ActiveRecord::Base
  set_table_name "tblUser"
  set_primary_key "ID"
  has_many :comments, :primary_key => "UserID",
    :foreign_key => "PosterID"
end

That's what I get for not simply copy/pasting (then nuking irrelevant 
details) and hand-coding my example from memory.

Anyhow, your other observation is also dead on. Creating an association on a 
model doesn't require you to create the "inverse" association on the other 
model.

> P.S. the reason i am torturing Rails like that is that it also has a 
> convention that it should obey the human.
> Seriously, i just want a nice and clear structure of my database, which 
> would be editable by hand (it is not going to be big), and to use Rails 
> just for a simple interface.

While I always follow rails conventions when possible (and recommend others 
do too), I also like to "torture" frameworks to see how flexible they are. 
After all, there are always occasions where it becomes necessary, such as in 
my instance where I have to work off of a legacy database that is still 
concurrently being accessed by legacy software. On the side, however, I've 
instantiated a dozen smaller "toy" or "utility" rails apps where I've 
followed the conventions and idioms religiously to great effect. Love 'em.


-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to