Mis*_*hko 2 ruby-on-rails sql-order-by ruby-on-rails-3
我有以下型号:
Product: name, shop_id (foreign key), brand_id (foreign key), price
Shop: name
Brand: name
Run Code Online (Sandbox Code Playgroud)
协会是:
Product: belongs_to :shop
belongs_to :brand
Shop: has_many :products
has_many :brands, :through => :products
Brand: has_many :products
has_many :shops, :through => :products
Run Code Online (Sandbox Code Playgroud)
在ProductsController#list我想获得按商店名称排序的所有产品列表,然后按品牌名称排序.
我试着这样做:
@products = Product.order("products.shop.name ASC, products.brand.name ASC")
Run Code Online (Sandbox Code Playgroud)
但它不起作用(我想因为products.shop.name在数据库级别不存在).
这样做的正确方法是什么?
iai*_*ain 16
奥斯汀L是对的,但他的语法有点陈旧.新的ActiveRecord语法更清晰:
@products = Product.includes(:shop, :brand).order("shops.name ASC, brands.name ASC")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9081 次 |
| 最近记录: |