В первом примере он напрямую выводится в erb, во втором - возвращает результат этого метода.
Попробуйте это:
def employer_filter(jobs)
employer_filter = ""
jobs.group_by(&:employer_name).sort.each do |employer,jobs|
employer_filter += link_to(employer, jobs_path())
end
employer_filter
end
Тогда назовите это следующим образом:
raw(employer_filter(jobs))
Также обратите внимание на использование «raw». После того, как вы переместили генерацию строки из шаблона, вы должны сказать rails, что вы не хотите, чтобы html избежал.
Для дополнительной оценки вы могли бы использовать команду "inject" вместо явного построения строки, но я ленив и хотел бы дать вам то, что, как я знаю, будет работать без тестирования.