次のビューコードは(予想通り)の合計との一連のリンクを生成します。私は、ビューのコードをリファクタリングし、ヘルパーにロジックを移動するとRailsの3リファクタリング問題
<% @jobs.group_by(&:employer_name).sort.each do |employer, jobs| %>
<%= link_to employer, jobs_path() %> <%= "(#{jobs.length})" %>
<% end %>
はしかし、コードは」doesnの期待通りの仕事。
ビュー:
<%= 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(これは1つ)が.collectメソッドをサポートしていますか? – craig
「実際のリンク」はどういう意味ですか? –
リンクの代わりに、アンカータグが上記のようにテキストとして表示されます。私はこれが「エスケープ」と呼ばれると思います。 – craig