Skip to content

A sample project demonstrating management of associations with acts_as_revisable

Notifications You must be signed in to change notification settings

rich/aar_associations_sample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Example acts_as_revisable for association tracking

The purpose of this app is to demonstrate how to handle revising an associated model along with a parent model.

A console session

>> c = Company.create
=> #<Company id: 24, created_at: "2008-06-26 23:29:10", updated_at: "2008-06-26 23:29:10", revisable_original_id: nil, revisable_branched_from_id: nil, revisable_number: 1, revisable_name: nil, revisable_type: nil, revisable_current_at: nil, revisable_revised_at: nil, revisable_deleted_at: nil, revisable_is_current: true>
>> [c, c.revisions].flatten.map {|x| x.phones.size}
=> [0]
>> c.phones.create
=> #<Phone id: 23, created_at: "2008-06-26 23:29:26", updated_at: "2008-06-26 23:29:26", revisable_original_id: nil, revisable_branched_from_id: nil, revisable_number: 1, revisable_name: nil, revisable_type: nil, revisable_current_at: nil, revisable_revised_at: nil, revisable_deleted_at: nil, revisable_is_current: true>
>> [c, c.revisions].flatten.map {|x| x.phones.size}
=> [1, 0]
>> c.phones.create
=> #<Phone id: 24, created_at: "2008-06-26 23:29:34", updated_at: "2008-06-26 23:29:34", revisable_original_id: nil, revisable_branched_from_id: nil, revisable_number: 1, revisable_name: nil, revisable_type: nil, revisable_current_at: nil, revisable_revised_at: nil, revisable_deleted_at: nil, revisable_is_current: true>
>> c.phones.create
=> #<Phone id: 26, created_at: "2008-06-26 23:29:35", updated_at: "2008-06-26 23:29:35", revisable_original_id: nil, revisable_branched_from_id: nil, revisable_number: 1, revisable_name: nil, revisable_type: nil, revisable_current_at: nil, revisable_revised_at: nil, revisable_deleted_at: nil, revisable_is_current: true>
>> [c, c.revisions].flatten.map {|x| x.phones.size}
=> [3, 2, 1, 0]
>> c.phones.first.revise!
=> true
>> [c, c.revisions].flatten.map {|x| x.phones.size}
=> [3, 2, 1, 0]
>> c.reload
=> #<Company id: 24, created_at: "2008-06-26 23:29:10", updated_at: "2008-06-26 23:29:10", revisable_original_id: nil, revisable_branched_from_id: nil, revisable_number: 5, revisable_name: nil, revisable_type: nil, revisable_current_at: nil, revisable_revised_at: nil, revisable_deleted_at: nil, revisable_is_current: true>
>> [c, c.revisions].flatten.map {|x| x.phones.size}
=> [3, 3, 2, 1, 0]

About

A sample project demonstrating management of associations with acts_as_revisable

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published