私のビューイメージは次のとおりです。Rails:値が存在する場合、 "each" roopの最初の値にテキストを追加する方法
私がしたいのは、Total:
を最初の行に表示することです。
Total: USD 12.34
EUR 23.45
GBP 34.56
データ数は、データの有無に応じて変更される場合があります。
Total: AUD 45.67
データがない場合は何も表示されません。
each_with_index
を試しましたが、currency
とamount
がない場合は動作しません。
サンプルデータ
room_id | event_id | currency | amount |
1 | 3 | | |
2 | 4 | 1 | 12.34 |
図
...
<% room.amounts.group(:currency).sum(:amount).each_with_index do |(currency, amount), index| %>
<% if index == 0 %>
Total
<% end %>
<% if currency.present? && amount.present? && amount > 0 %>
<div align="right">
<% if currency == 1 %>
USD
<% elsif currency == 2 %>
EUR
<% elsif currency == 3 %>
GBP
...
<% end %>
<%= number_to_currency(amount, :format => "%n", :precision => 2) %>
</div>
<% end %>
<% end %>
...
スキーマ私が試したが
create_table "amounts", force: :cascade do |t|
t.integer "room_id"
t.integer "event_id"
t.integer "currency"
t.decimal "amount"
...
SOM電子コードでは、私は解決策を考え出すことができませんでした。
私が望むものを実現する方法を教えていただければ幸いです。
@Mirza Memicに感謝します。第1行に「通貨」と「金額」がなく、第2行にデータがある場合は機能しません。私は質問の冒頭にサンプルデータを追加しました。 – SamuraiBlue
通貨がない場合でもこの行は表示されますか? –
はい、「Total」は@Mirza Memicと表示されます。私は私の意見を編集しました。 – SamuraiBlue