好的。我正在尝试用每种门票类型已售出多少张门票的数据填充表格。
因此,一个event
具有许多tickets
,而票证具有一个ticket_type
。我需要获取每种票证类型售出的票证总数。在上图中,您可以看到我得到的销售数量数据错误。
模态:
事件:
has_many :ticket_types, dependent: :destroy
has_many :purchases, dependent: :destroy
has_many :tickets, through: :purchases
票:
belongs_to :ticket_type
belongs_to :purchase
TICKET_TYPE:
belongs_to :event
这是表循环:
<% event.ticket_types.each do |ticket_type| %>
<tr class=tickets-sold-modal__data>
<td><%= ticket_type.name %></td>
<td>$<%= ticket_type.amount.to_i %></td>
<td><%= event.ticket_type_purchases %></td>
</tr>
<% end %>
在此迭代中,我调用
event.ticket_type_purchases
,它是此方法: def ticket_type_purchases
event.tickets.group(:ticket_type_id).count
end
那就是返回屏幕截图中所售数量的值。使用给定的信息,如何收集
TOTAL TICKETS SOLD FOR EACH TICKET TYPE
并将其显示在屏幕上? 最佳答案
只需将您的视图代码更改为此:
<tr class=tickets-sold-modal__data>
<td><%= ticket_type.name %></td>
<td>$<%= ticket_type.amount.to_i %></td>
<td><%= event.ticket_type_purchases[ticket_type.id] || 0 %></td>
</tr>
但是优化上面的代码以将event.ticket_type_purchases的输出存储在一个变量中,这样就不会多次进行数据库调用。