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.