我有三个型号,基本上是: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