如何允许用户创建带有修订的注释?

时间:2010-04-27 18:55:37

标签: ruby-on-rails

我正在开发一个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

Note模型仅包含首次创建注释的时间戳。 NoteRevision模型将包含文本以及每个修订的时间戳。这样,每次进行新修订时,都会在NoteRevision表中创建一个新条目,该表将通过Note表进行跟踪。希望这是有道理的!

首先,这看起来是一个很好的方法吗?如果是这样,我无法弄清楚控制器和视图将如何以一种形式呈现此信息。是否有任何好的教程或有人看到类似的东西可以指出我正确的方向?

提前致谢!

2 个答案:

答案 0 :(得分:2)

我会查看paper trail,它将为您处理所有版本控制并帮助您轻松返回最新版本。在幕后它会做类似于你试图做的事情,但已被许多人彻底测试和使用。它也得益于积极的发展。

答案 1 :(得分:0)

另一种选择是vestal_versions宝石。 Railscasts.com有一集使用它:http://railscasts.com/episodes/177-model-versioning

相关问题