J'essaie de développer un wiki avec l'historique des versions. Mon plan est le suivant: chaque fois que j'éditerai un contenu wiki, il devrait être sauvegardé en tant que nouveau.rails, has_one, construire _ # {association}, accepte_nested_attributes_for
pour l'instant, j'ai deux modèles, Wiki et WikiContent, et le code suivant à l'intérieur les:
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
modèle Wiki a un current_id sur le terrain, de savoir quel contenu est l'actuel.
dans le contrôleur Wiki je lance
def new
@wiki.build_current_wiki
end
def create
@wiki=Wiki.new(params[:wiki])
@wiki.save
@[email protected]_wiki.id
end
Mais chaque fois que je tente de lancer:
def edit
@wiki.build_new_content
end
Affecte NULL à current_wiki.wiki_id.
comment puis-je résoudre ce problème? ou existe-t-il un autre moyen de faire fonctionner cela?
Cela ne répond pas à votre question, mais avez-vous jeté un oeil à vestal_versions (http://github.com/laserlemon/vestal_versions)? Il gère les révisions pour vous. – agregoire