0

我目前正在创建一个应用程序来跟踪我的暗黑破坏神 3 拍卖,但我遇到了排序问题。

现在我有一个项目页面,列出了我所有的项目和最近销售的信息。每个项目都可以有多个销售,但我只希望最近的销售出现在项目页面上。

我的所有内容都显示正确,并且我可以按项目 NAME、GEARSLOT 和 iLVL 进行排序,没有任何问题,因为它们属于项目模型。

然而,事实证明,按销售货币或价格进行排序是很棘手的。我对此进行了查找,并发现了很多解决方案,如果每件商品只有 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

我已经可以说我可能不是最有效的开始方式,所以任何建议都将不胜感激!

4

1 回答 1

0

出于安全原因,这个糟糕的代码。它受到 SQL 注入的影响。来自 Ryan Bate 的 Railcasts的解决方案

于 2012-08-03T23:36:36.690 回答