see if this helps http://railscasts.com/episodes/177-model-versioning
On Sat, Sep 11, 2010 at 1:36 PM, nobosh <[email protected]> wrote: > I want to add a revision record on every update to the book record. > > Like how a wiki works. Every time the wiki is update it tracks a > revision: > http://upload.wikimedia.org/wikipedia/commons/4/41/Mediawiki-database-schema.png > > On Sep 11, 10:34 am, radhames brito <[email protected]> wrote: > > you and to record every update or you overwrite when there is an update? > > > > > > > > On Sat, Sep 11, 2010 at 1:13 PM, nobosh <[email protected]> wrote: > > > Hello, newbie here... > > > > > I have the following models: > > > > > class Instance < ActiveRecord::Base > > > has_many :users > > > has_many :books > > > end > > > > > class User < ActiveRecord::Base > > > belongs_to :instance > > > end > > > > > class Book < ActiveRecord::Base > > > belongs_to :instance > > > end > > > > > I now want to add a BookRevision table, that has the following columns > > > (id, user_id, version # (auto increment), diff (old book copy), > > > timestamps) > > > > > Logic: > > > 1. When a book is Created, a record is added to the BookRevision > > > table, so we know who created the book in the first place > > > 2. When a book is Updated, a record is added with the user_id (could > > > be a different user), and a new version #, and the old book text, to > > > serve as an archive. > > > > > Given that I have the Instance, User, Book table implement in my rails > > > add, are these the correct steps to make the above come to life? > > > 1. Add a migration for the BookRevision table.... > > > rails generate migration AddTableBookRevision user_id:integer > > > version:integer diff:text > > > 2. Then update the models as follows: > > > > > class Instance < ActiveRecord::Base > > > has_many :users > > > has_many :books > > > end > > > > > class User < ActiveRecord::Base > > > belongs_to :instance > > > end > > > > > class Book < ActiveRecord::Base > > > belongs_to :instance > > > has_many :BookRevisions > > > end > > > > > class BookRevision < ActiveRecord::Base > > > belongs_to :Book > > > end > > > > > Then in my controller, when adding a new book? Right now I have: > > > @book = Book.create(params[:book].merge(:instance_id => > > > current_user.instance_id)) > > > How do I update that to account for the BookRevision association? > > > > > Thanks for helping me out! > > > > > -- > > > You received this message because you are subscribed to the Google > Groups > > > "Ruby on Rails: Talk" group. > > > To post to this group, send email to [email protected] > . > > > To unsubscribe from this group, send email to > > > [email protected]<rubyonrails-talk%[email protected]><rubyonrails-talk%2Bunsubscrib > [email protected]> > > > . > > > For more options, visit this group at > > >http://groups.google.com/group/rubyonrails-talk?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<rubyonrails-talk%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

