Association-generated methods quick reference

Posted by Marc Love
on Wednesday, May 30

One of the documentation patches I submitted last night was just accepted into the core. It’s a quick reference table of the methods that are auto-generated when an association is created.

# ===Singular associations (one-to-one)
#                                     |            |  belongs_to  |
#   generated methods                 | belongs_to | :polymorphic | has_one
#   ----------------------------------+------------+--------------+---------
#   #other                            |     X      |      X       |    X
#   #other=(other)                    |     X      |      X       |    X
#   #build_other(attributes={})       |     X      |              |    X
#   #create_other(attributes={})      |     X      |              |    X
#   #other.create!(attributes={})     |            |              |    X
#   #other.nil?                       |     X      |      X       |    
# ===Collection associations (one-to-many / many-to-many)
#                                     |       |          | has_many
#   generated methods                 | habtm | has_many | :through  
#   ----------------------------------+-------+----------+----------
#   #others                           |   X   |    X     |    X
#   #others=(other,other,...)         |   X   |    X     |    
#   #other_ids                        |   X   |    X     |    
#   #other_ids=(id,id,...)            |   X   |    X     |    
#   #others<<                         |   X   |    X     |    X
#   #others.push                      |   X   |    X     |    X
#   #others.concat                    |   X   |    X     |    X
#   #others.build(attributes={})      |   X   |    X     |    X
#   #others.create(attributes={})     |   X   |    X     |    
#   #others.create!(attributes={})    |   X   |    X     |    X
#   #others.size                      |   X   |    X     |    
#   #others.length                    |   X   |    X     |    
#   #others.count                     |       |    X     |    
#   #others.sum(args*,&block)         |   X   |    X     |    X
#   #others.empty?                    |   X   |    X     |    
#   #others.clear                     |   X   |    X     |    
#   #others.delete(other,other,...)   |   X   |    X     |    X
#   #others.delete_all                |   X   |    X     |    
#   #others.destroy_all               |   X   |    X     |    
#   #others.find(*args)               |   X   |    X     |    X
#   #others.find_first                |   X   |          |    
#   #others.uniq                      |   X   |    X     |    
#   #others.reset                     |   X   |    X     |    X
Comments

Leave a response

Comment