Chapter 3. Active Record Relationships
Dealing with relationships is one of the most important jobs of persistence frameworks. The best persistence frameworks handle relationships with excellent performance for the end user and simplicity for the developer. Active Record takes advantage of the Ruby language and naming conventions to simplify both access and configuration of related data. In this chapter, we’ll focus on building relationships between tables, and reflecting those relationships in your model objects.
With validation, shown in the previous chapter, you began to see the domain-specific language built into Active Record. We’ll use that language to define relationships between the objects in our database. Three components specify a relationship: the relationship itself, the association or target, and named parameters. More precisely, these are:
- relationship
A method, defined through
ActiveRecord::Base, which defines the behavior of the relationship.- association(s)
A symbol that specifies the target of the relationship. The symbol may be singular or plural, based on the cardinality of the target.
- named parameters
Like all Ruby methods, the relationship can take an optional number of named parameters, which may also have default values.
A statement defining a relationship has the form:
relationship :association :parameter1 => value, :parameter2 => value,...
For example, you might have:
class Slideshow < ActiveRecord::Base
has_many :photos :order => positionUsing this small ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access