Ich habe eine @commit
, die has_many :diffs
, so habe ich eine @diffs = @commit.diffs
.Wie kann ich diesen geschachtelten Iterator-Check viel trockener und effizienter machen?
Jede diff
hat eine .body
, die eine Zeichenfolge enthält.
Das Problem, das ich in laufen lasse, ist, dass ich schnell in der Lage sein müssen, die body
jeder diff
zu überprüfen, dass commit
gehört zu sehen, ob es eine Bedingung erfüllt (das heißt nämlich body.include? (line_count - 3).to_s
). Wenn ja, möchte ich das diff
speichern/verwenden.
So wie ich umgesetzt haben es durch dies zu tun ist:
<% @diffs.each do |diff| %>
<% if diff.body.include? (line_count - 3).to_s %>
<% diff.body.lines.each do |dl| %>
<% end %>
<% end %>
<% end %>
Welche unelegant scheint. Wie kann ich das TROCKENER, effizienter und sauberer machen?
Ich möchte auch das aus meiner Sicht nehmen, und in einen Helfer/Dekorateur oder etwas bewegen.
Aufruf 'to_s' auf etwas ziemlich garantiert Ihnen einen String zurück, und eine beliebige Zeichenfolge ist immer logisch wahr. Diese Bedingung wird niemals nicht auslösen. – tadman