Я работаю над проектом Rails, в котором я хочу позволить пользователям создавать отдельные заметки, которые на самом деле являются просто текстовыми полями в настоящее время. С каждой заметкой пользователь может редактировать написанное ранее, но старая версия хранится в таблице редакций. Я пытаюсь найти лучший способ подойти к этому.
Мои первоначальные мысли состоят в том, чтобы иметь следующие отношения:
class User < ActiveRecord::Base
has_many :notes
end
class Note < ActiveRecord::Base
has_many :note_revisions
belongs_to :user
end
class NoteRevision < ActiveRecord::Base
belongs_to :note_revision
end
Модель заметки будет содержать только отметку времени, когда заметка была впервые создана. Модель NoteRevision будет содержать текст, а также временную метку для каждой ревизии. Таким образом, каждый раз, когда производится новая редакция, в таблицу NoteRevision создается новая запись, которая отслеживается через таблицу Note. Надеюсь, это имеет смысл!
Во-первых, это похоже на хороший способ сделать это? Если это так, у меня возникли проблемы с выяснением того, как контроллер и представление представят эту информацию в одной форме. Есть ли хорошие уроки или кто-то видел что-то подобное, что может указать мне правильное направление?
Заранее спасибо!