2012-08-03 52 views
0

我目前正在創建一個應用程序來跟蹤我的暗黑破壞神3拍賣,並且我遇到了排序問題。Rails 3根據協會排序複雜

現在我有一個物品頁面,其中列出了我最近最近銷售的所有物品和信息。每件商品都可以有多個銷售,但我只希望最近的銷售出現在商品頁面上。

我的所有內容都顯示正確,並且我可以按項目NAME,GEARSLOT和iLVL排序,因爲它們屬於Item模型,所以沒有任何問題。

但是,按照銷售貨幣或價格排序,證明是棘手的。我已經看了這個,並且發現了很多解決方案,如果每個項目只有一次銷售,但沒有什麼能夠幫助我僅通過最近的關聯進行排序。

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 

我已經可以告訴大家,我可能不會做這種最有效的方式來開始,所以任何的建議是不勝感激!

回答