У меня есть следующие модели:
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
Теперь я хочу добавить таблицу BookRevision, которая имеет следующие столбцы (id, user_id, version # (автоинкремент), diff (копия старой книги), отметки времени) Логика:
- Когда книга создается, запись добавляется в таблицу BookRevision, поэтому мы знаем, кто создал книгу в первую очередь
- Когда книгаОбновленная запись добавляется с идентификатором пользователя (может быть другим пользователем) и новой версией
и текстом старой книги в качестве архива.
Даночто в моем рельсе добавлена таблица «Экземпляр, пользователь, книга», это правильные шаги для воплощения вышеизложенного в жизнь?- Добавить миграцию для таблицы BookRevision .... rails генерировать миграцию AddTableBookRevision user_id: целочисленная версия: integer diff: text - Затем обновите модели следующим образом:
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
Затем в моем контроллере при добавленииновая книга?Прямо сейчас у меня есть:
@book = Book.create(params[:book].merge(:instance_id =>
current_user.instance_id))
Как мне обновить это, чтобы учесть ассоциацию BookRevision?Спасибо за помощь!