0

我正在为一个应用程序构建一个 wiki 系统。设计的本质是有一个Article模型,每个Article都有_many Revisions。当需要显示文章时,会拉出最近的修订以获取所有相关信息。

这似乎是使用accepts_nested_attributes_for 的完美案例,以便编辑文章将代表修订接受更改。但是,我似乎无法找到保留所有旧版本的方法,并通过在每次编辑时创建新版本来进行更改。有什么办法可以使这项工作?

对于那些喜欢不那么抽象的人:

class Article
  has_many :revisions
  has_one :current_revision, :class_name => "Revision", :order => "created_at DESC"
  #contains columns that are not tracked for revisions, such as the article's Url slug
end
class Revision
  belongs_to :article
  #contains basic columns like wiki article body
end
4

1 回答 1

2

您不需要所有这些工作,看看Vestal Versions gem。它带来了版本化模型所需的一切。为此,还有一个railscast

但是如果你仍然想使用嵌套表单,有两个很好的 railscasts:

  1. 嵌套模型表单第 1 部分
  2. 嵌套模型表单第 2 部分
于 2010-06-22T20:44:05.813 回答