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!