Ruby on rails RubyonRails:有没有办法为wiki系统使用嵌套属性?

Ruby on rails RubyonRails:有没有办法为wiki系统使用嵌套属性?,ruby-on-rails,wiki,nested-attributes,Ruby On Rails,Wiki,Nested Attributes,我正在为一个应用程序构建一个wiki系统。设计的本质是有一个文章模型,每一篇文章都有很多修改。当显示文章时,将调出最新版本以获取所有相关信息 这似乎是使用accepts_嵌套的_attributes_的完美案例,这样编辑文章就可以代表修订接受更改。然而,我似乎无法找到一种方法来保留所有旧版本,并且通过在每次编辑时创建新版本来进行更改。有什么办法可以让这一切顺利进行吗 对于那些喜欢不那么抽象的东西的人: class Article has_many :revisions has_one :

我正在为一个应用程序构建一个wiki系统。设计的本质是有一个文章模型,每一篇文章都有很多修改。当显示文章时,将调出最新版本以获取所有相关信息

这似乎是使用accepts_嵌套的_attributes_的完美案例,这样编辑文章就可以代表修订接受更改。然而,我似乎无法找到一种方法来保留所有旧版本,并且通过在每次编辑时创建新版本来进行更改。有什么办法可以让这一切顺利进行吗

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

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

你不需要所有这些工作,看看gem。它提供了版本化模型所需的一切。对于这一点也有一个明确的解释

但是,如果您仍然希望使用嵌套表单,有两个很好的RailsCast:


  • 对于Vestal版本,如果我最终更改了版本模型的列,这是否意味着所有现有版本都将无法使用?抱歉,我不理解您的问题,但我希望我的回答仍然会有所帮助。Vestal版本保留模型的版本,每次更新模型时,Vestal版本都会保存旧版本,因此您可以随时访问它。所以他们不会被淘汰。我只是有点担心版本的脆弱性。如果我要从表中为基添加或删除一列,我想知道保存的版本会发生什么情况。好的,现在我理解您的担忧,抱歉,但我无法在这里帮助您。我从未更改过这样的版本模型。