我目前正在创建一个应用程序来跟踪我的暗黑破坏神3拍卖,我遇到排序问题。
现在我有一个项目页面,其中列出了我最近销售的所有项目和信息。每件商品都可以有多个销售,但我只想在商品页面上显示最新的商品。
我的所有内容都正确显示,并且我可以按项目NAME,GEARSLOT和iLVL进行排序而不会出现任何问题,因为它们属于Item模型。
然而,根据销售货币或价格进行排序证明是棘手的。我已经查了一下,并且发现了很多解决方案,如果每个项目只有1次销售,那么这些解决方案都适用,但没有什么可以帮助我只按最近的协会进行排序。
index.html.erb
<table id="item_list">
<tr class="header_row">
<th><%= link_to "Name", :sort => :name %></th>
<th><%= link_to "Gearslot", :sort => :gearslot %></th>
<th><%= link_to "Ilvl", :sort => :ilvl %></th>
<th>Currency</th>
<th>Price</th>
</tr>
<% @items.each do |item| %>
<% last_sale = item.sales.find(:last) %>
<tr>
<td><%= item.name %></td>
<td><%= item.Gearslot %></td>
<td><%= item.iLvl %></td>
<td><%= Sale::CURRENCYCODE.index(last_sale.currency) %></td>
<td><%= last_sale.price %></td>
</tr>
....
items_controller.rb
def index
@items = Item.order(params[:sort])
respond_to do |format|
format.html # index.html.erb
format.json { render json: @items }
end
end
我已经可以告诉我,这可能不是最有效的方式,所以任何建议都会受到赞赏!