如何准确使用rails diffy gem来比较另一个版本?

时间:2017-10-23 21:37:14

标签: ruby-on-rails

所以我试图比较食谱然后在节目中显示版本。比较功能和视图正常工作。我可以在同一页面上看到它们。但是我想用diffy来展示两者之间的不同之处。

我正在使用部分"显示"输出差异。为了理智,我想在这个视图中建立新的"版本"。所以下面可以随意忽略:渲染"显示",食物:@version。

现在在我的比较(显示)视图中,我有以下内容:

  <div>
    <h1> Original recipe </h1>
    <%= render 'show', food: @original %>
  </div>
   <!-- Clone form  -->
  <div>
    <h1> Cloned recipe >> Version of the Original </h1>
    <%= render 'show', food: @version %>
    <div class='row mt'>
     <div class='col-sm-12'>
      <style><%= Diffy::CSS %></style>
       <div class='well diff'>
       <p>
        <strong>Name:</strong>
        <%= diff(food.recipe.name) %>
      </p>
    </div>
  </div>
</div>

老实说,我不能想到下面的内容要比较两者:

 <%= diff(food.recipe.name) %> 

我尝试用逗号分隔@original和@version的变体,甚至建立了一个食物助手无济于事。

我的助手看起来像:

   def diff(content1, content2)
    changes = Diffy::Diff.new(content1, content2,
                         include_plus_and_minus_in_html: true,
                         include_diff_info: true)
    changes.to_s.present? ? changes.to_s(:html).html_safe : 'No Changes'
  end

关于我需要投入什么样的思考?

1 个答案:

答案 0 :(得分:0)

花了一段时间但是:

 <%= diff(@version.recipe.name, @original.recipe.name) %>