Die folgende Ansicht Code eine Reihe von Links mit Summen erzeugt (wie erwartet):Rails 3 Refactoring Ausgabe
<% @jobs.group_by(&:employer_name).sort.each do |employer, jobs| %>
<%= link_to employer, jobs_path() %> <%= "(#{jobs.length})" %>
<% end %>
Allerdings, wenn ich die Ansicht des Code und bewegen Sie die Logik zu einem Helfer Refactoring, doesn der Code‘ t arbeiten wie erwartet.
Ansicht:
<%= employer_filter(@jobs_clone) %>
Helfer:
def employer_filter(jobs)
jobs.group_by(&:employer_name).sort.each do |employer,jobs|
link_to employer, jobs_path()
end
end
Die folgende Ausgabe erzeugt:
<Job:0x10342e628>#<Job:0x10342e588>#<Job:0x10342e2e0>Employer A#<Job:0x10342e1c8>Employer B#<Job:0x10342e0d8>Employer C#<Job:0x10342ded0>Employer D#
Was bin ich nicht zu verstehen? Auf den ersten Blick scheint der Code gleichwertig zu sein.
Schließen. Es gibt Werte wie Employer A anstelle des tatsächlichen Links zurück. Ich wäre gespannt auf die .inject-Syntax. Unterstützt ein OrderedHash (von dem das eine ist) die .collect-Methode? – craig
was bedeutet "tatsächlicher Link"? –
Anstelle des Links wird das Anker-Tag wie oben beschrieben angezeigt - als Text. Ich denke, das heißt "entkommen". – craig