Hi,
I am putting xml into a database. I have one table, products, that
has_many product_features.
I would like to use the product table’s id in the product_features
table, and join on that, but the problem is that the product table’s
id does not exist until the product is in the database.
I would prefer to join on a different field – a string I make up
randomly, and keep track of. How do I do that within my product and
product_feature models? I can’t find anything in the documentation
that says anything about how to join on anything other than the parent
table’s id.
I do see the :source method, but this appears to allow you to make an
alias for a table name, but still forces you to use the parent table’s
id.
Help appreciated.
Charlie
when I first started using rails active_records I struggled because I
had previously used a java O/R mapping tool that used a guid generator
to build primary keys as soon as you instantiated a model object. This
really simplifies dealing with foreign key relationships in complex
models. But I think you can get used to living with the way rails
deals with this. I use foreign key constraints in the database, which
it seems many rails developers do not (?). I did some testing early
on to figure out how rails works and these are the notes I kept on
this:
-add child to parent and save the parent => saves both
-add child to parent and save the child => error, null value in fk
-set childs parent and save child => saves both
-set childs parent and save parent => only saves parent
these seem like fairly reasonable rules to live by and I’ve gotten
used to it. Are you having problems along these lines? Do you use fk
constraints?
I would really recommend not trying to add a different key value if
possible. I suspect there are other ways to solve your problem.
(warning: i’m no rails guru!)