好。我正在尝试填写一张表格,其中包含每种票证类型已售出票数的数据。
因此,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
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
并在屏幕上显示该内容?
答案 0 :(得分:1)
只需将您的观看代码更改为:
<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的输出存储在变量中,这样就不会多次进行数据库调用。