代码之家  ›  专栏  ›  技术社区  ›  holden

维斯塔尔版本与htmldiff的回归问题

  •  1
  • holden  · 技术社区  · 16 年前

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

    我很难理解如何使用Revert-to方法…我想要的东西,我可以同时调用两个不同的版本,但这似乎不是Vestal_版本的工作方式。

    这段代码是可行的,但我想知道我是否在做一些比需要做的更难的事情,我想在深入研究之前找到答案。

    @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>
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   Corey    16 年前

    我想你在找 changes_between Vestal_版本提供的方法。

    @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"]}
    

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