我有三個型號,基本上是:Rails的高級排序
class Vendor
has_many :items
end
class Item
has_many :sale_items
belongs_to :vendor
end
class SaleItem
belongs_to :item
end
實際上,每個sale_item
指向一個特定的item
(但有可能是從item
的基礎價格的不同相關的數量和銷售價格,因此是單獨的模型),並且每個item
由特定的vendor
製成。
我想按供應商名稱對所有sale_item
進行排序,但這意味着要通過相關的item
,因爲這是該關聯所在的位置。
我第一次嘗試是改變SaleItem
以下:
class SaleItem
belongs_to :item
has_one :vendor, :through => :item
end
,讓我去找SaleItem.first.vendor
,但不允許我做這樣的事情:
SaleItem.joins(:vendor).all(:order => "vendors.name")
有一個簡單的方法來找出這些複雜的關聯和排序?如果有一個可以處理這些事情的插件,那將會特別好。在這個應用程序中,我有很多不同類型的表來添加排序,而且我覺得這將成爲大部分搜索工作的一部分。
所以你只是想通過assoicated供應商分類你的項目? – 2011-06-16 00:41:31
SaleItems有一個綁定到items.id的外鍵列(sale_items.item_id),並且Items有一個外鍵列(items。vendor_id)綁定到vendors.id。我想按與其關聯商品關聯的供應商對SaleItems進行分類。 – clem 2011-06-16 01:04:46