Ruby on Rails Associations macro-methods for tying objects together through foreign keys

J

Jean-Marc Molina

Hello,

I found an interesting ER diagram on the "Module:
ActiveRecord::Associations::ClassMethods" page of the Rails Framework
Documentation :
http://ar.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html.
At the beginning we can read « Associations are a set of macro-like class
methods for tying objects together through foreign keys. They express
relationships like "Project has one Project Manager" or "Project belongs to
a Portfolio". ». I would like to learn more about that concept of expressing
relationships between objects. I only knew it as a design concept and can't
remember seeing it applied "as this" in the source code using macros. I find
the idea interesting. Is it some kind of Ruby "Best Practices" or
design/development pattern ?

JM.

PS : Note that the diagram is not displayed on the "official" page :
http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html. I was only able to find it on that "mirror".
 
J

Jean-Marc Molina

Jean-Marc Molina said:
At the beginning we can read « Associations are a set of macro-like
class methods for tying objects together through foreign keys. They
express relationships like "Project has one Project Manager" or
"Project belongs to a Portfolio". ».

Reading the "Simplify Business Logic with PHP DataObjects" ONLamp.com
article by Darryl Patterson I found an interesting comment about the
Class::DBI [2] Perl module : « The greatest part about it is that you can
declare relationships between classes/tables by indicating that a certain
column in your table either is a foreign key (has_a) or that your table's
primary key is referenced from another one (has_many). All the joins will
then happen behind the scenes and you can use simple accessors to navigate
your relations. ». The same terms as in the diagram are used : "has_one",
"has_many"... I know these are common software design terms but I'm pretty
sure it's not a coïncidence. I'm about to investigate on Perl communities,
stay tuned...

JM.

Notes :
* [1] <http://www.onlamp.com/pub/a/php/2004/08/05/dataobjects.html>
* [2] http://www.class-dbi.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top