Skip to content

Latest commit

 

History

History
29 lines (26 loc) · 2.29 KB

README.rdoc

File metadata and controls

29 lines (26 loc) · 2.29 KB

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]