1

コードが扱いにくくならないように、私がやっていることをもっと簡単に行う方法があると思います。

revert_to メソッドの使用方法を理解するのに苦労しました... 2 つの異なるバージョンを同時に呼び出せるものが欲しかったのですが、vestal_versions が機能する方法ではないようです。

このコードは機能しますが、必要以上に難しいものを作っているのではないかと考えており、深く掘り下げる前に調べたいと思います。

@article = Article.find(params[:id])

if params[:versions]
  v = params[:versions].split(',')
  @article.revert_to(v.first.to_i)
  @content1 = @article.content
  @article.revert_to(v.last.to_i)
  @content2 = @article.content
end

ご参考までに、これを HTMLDIFF と組み合わせて使用​​して、バージョンの変更を取得しています。

<div id="content">
  <% if params[:versions] %>
    <%= Article.diff(@content1, @content2) %>
  <% else %>
    <%= @article.content %>
  <% end %>
</div>
4

1 に答える 1

2

changes_betweenあなたはvestal_versionsが提供するメソッドを探していると思います。

@article = Article.find(params[:id])

if params[:versions]
  v = params[:versions].split(',')
  @article_changes = @article.changes_between(v.first.to_i, v.last.to_i)
end

then@article_changesは、バージョン間の変更のハッシュです。何かのようなもの

{"content" => ["first version content", "second version content"]}

バージョンアップしたものによって異なる場合があります。

于 2010-04-29T01:09:08.200 に答える