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:
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 => position Using this small amount of language, you'll be able to define complex relationships quickly. Your relationships will also be easy to read and maintain. Let's implement the full model for Photo Share, complete with relationships.
|