0
我有两个部分有相似的输出,但主要变化。Rails - 干出类似的意见
部分1
<h2 class="text-center">Current Incident</h2> <% active_incidents.each do |i| %> <div class="incident-block"> <p class="incident-date"><span class="inner-date"><%= i.updated_at.strftime('%e %b, %Y') %></span></p> <span class="incident-name text-<%= i.convert_to_level %>"><%= i.name %> <% if signed_in? %><a href="/incidents/deactivate/<%= i.id %>"> <button class="btn btn-success deactivate-button btn-xs">Deactivate incident</button> </a> <% end %></span> <span class="incident-component text-<%= i.convert_to_level %>"><%= i.component %></span> <% all_events(i).each do |e| %> <hr class="event-hr"/> <p class="incident-description"><b><%= e.status %></b>- <%= e.message %></p> <p class="incident-updated-at"><%= e.updated_at.strftime('%b %e, %H:%M %Z') %></p> <% end %> <% if signed_in? %> <a href="/incidents/<%= i.id %>"> <button class="btn btn-warning btn-sm">Update Incident</button> </a> <a href="/incidents/delete/<%= i.id %>" data-confirm="Are you sure? Deleting an incident is irreversible."> <button class="btn btn-danger btn-sm">Delete Incident</button> </a> <% end %> </div> <% end %>
部分2
<% if inactive_incidents.any? %><h2 class="text-center">Past Incidents</h2><% end %> <% inactive_incidents.each do |i| %> <div class="incident-block"> <p class="incident-date"><span class="inner-date"><%= i.updated_at.strftime('%e %b, %Y') %></span></p> <span class="incident-name text-<%= i.convert_to_level %>"><%= i.name %></span><span class="incident-component text-<%= i.convert_to_level %>"><%= i.component %></span> <% all_events(i).each do |e| %> <hr class="event-hr"/> <p class="incident-description"><b><%= e.status %></b>- <%= e.message %></p> <p class="incident-updated-at"><%= e.updated_at.strftime('%b %e, %H:%M %Z') %></p> <% end %> <% if signed_in? %> <a href="/incidents/<%= i.id %>"> <button class="btn btn-warning btn-sm">Update Incident</button> </a> <a href="/incidents/delete/<%= i.id %>" data-confirm="Are you sure? Deleting an incident is irreversible."> <button class="btn btn-danger btn-sm">Delete Incident</button> </a> <% end %> </div> <% end %>
现在,这些谐音家类似的代码,但与渲染不同的输出显著的变化。由于代码可维护性现在成为我的问题(我必须做两次所有更改)。我如何干掉代码但仍保持不同的逻辑?
万一有人需要更多的情况下,[这里的源(https://github.com/ur0/statusify)。 –