Следующий вид кода генерирует ряд ссылок с сумм (как и ожидалось):Rails 3 рефакторинга выпуск
<% @jobs.group_by(&:employer_name).sort.each do |employer, jobs| %>
<%= link_to employer, jobs_path() %> <%= "(#{jobs.length})" %>
<% end %>
Однако, когда я реорганизовать код мнение, и переместить логику в качестве помощника, код Безразлично» т работать так, как ожидаете.
вид:
<%= employer_filter(@jobs_clone) %>
помощник:
def employer_filter(jobs)
jobs.group_by(&:employer_name).sort.each do |employer,jobs|
link_to employer, jobs_path()
end
end
Следующий вывод генерируется:
<Job:0x10342e628>#<Job:0x10342e588>#<Job:0x10342e2e0>Employer A#<Job:0x10342e1c8>Employer B#<Job:0x10342e0d8>Employer C#<Job:0x10342ded0>Employer D#
Что я не понимая? Сначала краснеть, код кажется эквивалентным.
Закрыть. Он возвращает значения, такие как Employer A вместо фактической ссылки. Мне было бы интересно увидеть синтаксис .inject. Поддерживает ли OrderedHash (из которых это один) метод .collect? – craig
Что означает «фактическая ссылка»? –
Вместо ссылки тег привязки отображается, как описано выше, как текст. Я думаю, что это называется «сбежавшим». – craig