私は 2 つのモデルを持っています。1 つはカード付きで、もう 1 つは関連する報酬プログラム付きです。一部の列に条件付き if ステートメントを含むテーブルにそれらすべてを表示していますが、if else ステートメントが列を台無しにする理由がわかりません。動作する例と動作しない例の 2 つを投稿しました。いくつかの追加機能を追加するには、2番目のものが必要です
この例は機能します
<table>
<tr>
<th>Card</th>
<th>General Rewards</th>
<th>Gas Amount</th>
<th>Movies Amount</th>
<th>Museums Amount</th>
<th>Theme Park Amount</th>
<th>Restaurant Amount</th>
<th>Department Store Amount</th>
</tr>
<% @cards.each do |card| %>
<tr>
<td><%= card.name %></td>
<td><%= card.general_rate %> </td>
<% card.rewards.each do |category| %>
<% if category.name.downcase == "gas" %>
<td><%= category.threshold_check(@gas) %></td>
<% end %>
<% if category.name.downcase == "movies" %>
<td><%= category.threshold_check(@movies) %></td>
<% end %>
<% if category.name.downcase == "museums" %>
<td><%= category.threshold_check(@museums) %></td>
<% end %>
<% if category.name.downcase == "theme parks" %>
<td><%= category.threshold_check(@theme_parks) %></td>
<% end %>
<% if category.name.downcase == "restaurants" %>
<td><%= category.threshold_check(@restaurants) %></td>
<% end %>
<% if category.name.downcase == "department stores" %>
<td><%= category.threshold_check(@department_stores) %></td>
<% end %>
<% end %>
</tr>
<% end %>
</table>
これにより、最後に余分な列が追加されます
<table>
<tr>
<th>Card</th>
<th>General Rewards</th>
<th>Gas Amount</th>
<th>Movies Amount</th>
<th>Museums Amount</th>
<th>Theme Park Amount</th>
<th>Restaurant Amount</th>
<th>Department Store Amount</th>
</tr>
<% @cards.each do |card| %>
<tr>
<td><%= card.name %></td>
<td><%= card.general_rate %> </td>
<% card.rewards.each do |category| %>
<td><%= category.name.downcase == "gas" ? category.threshold_check(@gas) : 0 %></td>
<td><%= category.name.downcase == "movies" ? category.threshold_check(@movies) : 0 %></td>
<td><%= category.name.downcase == "museums" ? category.threshold_check(@museums) : 0 %></td>
<td><%= category.name.downcase == "theme parks" ? category.threshold_check(@theme_parks) : 0 %></td>
<td><%= category.name.downcase == "restaurants" ? category.threshold_check(@restaurants) : 0 %></td>
<td><%= category.name.downcase == "department stores" ? category.threshold_check(@department_stores) : 0 %></td>
<% end %>
</tr>
<% end %>
</table>