2016-03-25 11 views
3

内のIDをインクリメントする方法:私は私のコードでこれを持って<%= for %>ビューヘルパー

<%= for empresa <- @empresas do %> 
    <%= render myProject.ComponentView, "smallPlacard.html", 
     smallPlacard_id: "1", 
     smallPlacard_class: "Company", 
     smallPlacard_mainText: company.name 
    %> 
<% end %> 

私はsmallPlacard_idが自動的にレンダリングされた各要素ごとにインクリメントされることをしたいと思います。 フェニックス/機能的な方法でそれを行う最善の方法は何ですか?

答えて

6

あなたはEnum.with_index/2を使用することができます。

<%= for {empresa, id} <- Enum.with_index(@empresas) do %> 
    <%= render myProject.ComponentView, "smallPlacard.html", 
     smallPlacard_id: id + 1, 
     smallPlacard_class: "Company", 
     smallPlacard_mainText: company.name 
    %> 
<% end %> 

インデックスが0基づいている私は、この例では1ずつ増加しています。前と同じように文字列が必要な場合は、代わりに"#{id + 1}"を使用してください。

+7

'Enum.with_index'が交互に2番目の引数として'・オフセットを取るので、あなたは '1ベースのインデックスのための' Enum.with_index(1 @empresasを、)を使用することができますのような作品'i + 1'を' i'だけに置き換えます。これは、インデックスを複数の場所で使用する必要がある場合に特に役立ちます。 –

+0

ありがとうパトリック! –

1

魅力

<%= for {item, id} <- Enum.with_index(@items) do %> 
    <tr> 
    <td><%= id + 1 %></td> 
    </tr> 
<% end %> 
関連する問題