Rails uses a parameter :throughto refer to another association that you have already defined. I think he does this so that you can first establish complex associations without defining them and referring to them on the same line.
For example, consider this (optionally complex) example:
has_many :users, :class_name => 'Person', :foreign_key => 'owner_id'
has_many :tasks, :through => :users, :class_name 'Job'
There is no pure way to express all this information in a string.
( , ), . , has_many :tasks has_many :milestones, :through => :tasks, @user.tasks, @user.milestones.
, ( , , , ), , has_many :through.
? , , .