我正在尝试开发一个带有版本历史的 wiki。
我的计划是:每次我编辑 wiki 内容时,都应该将其另存为新内容。
目前,我有两个模型,Wiki 和 WikiContent,其中包含以下代码:
class Wiki < ActiveRecord::Base
has_many :wiki_contents
has_one :current_wiki, :class_name => "WikiContent"
accepts_nested_attributes_for :current_wiki
has_one :new_content, :class_name => "WikiContent"
accepts_nested_attributes_for :new_content
end
class WikiContent < ActiveRecord::Base
belongs_to :wiki
end
Wiki 模型有一个字段 current_id,用于知道哪些内容是当前内容。
在 Wiki 控制器中我运行
def new
@wiki.build_current_wiki
end
def create
@wiki=Wiki.new(params[:wiki])
@wiki.save
@wiki.current_id=@wiki.current_wiki.id
end
但是每当我尝试运行时:
def edit
@wiki.build_new_content
end
它将 NULL 分配给 current_wiki.wiki_id。
我该如何解决?还是有另一种方法可以使它起作用?