1

我猜可能有一种更简单的方法来做我正在做的事情,这样代码就不那么笨拙了。

我很难理解如何使用 revert_to 方法...我想要一些可以同时调用两个不同版本的东西,但这似乎不是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_betweenvestal_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

然后@article_changes是版本之间更改的哈希值。就像是

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

可能会有所不同,具体取决于您的版本。

于 2010-04-29T01:09:08.200 回答