我有一个模型,在我的产品表中有price、min_price、max_price和discount字段。如果我想执行升序-降序,当我们在多个字段上申请订单时,将如何执行。例如如下。
@products = Product.order("price asc").order("min_price desc").order("max_price asc").order("updated_at asc") (Query might be wrong but for reference im adding)
它会按照订单顺序订购吗?
如果将.to_sql
附加到它,它将显示生成的SQL,以便您自己进行调查。
我尝试了一个类似的查询:
Book.select(:id).order("id asc").order("pub_date desc").to_sql
=> "SELECT "books"."id" FROM "books" ORDER BY id asc, pub_date desc"
你可以改为:
Book.select(:id).order(id: :asc, pub_date: :desc).to_sql
=> "SELECT "books"."id" FROM "books" ORDER BY "books"."id" ASC, "books"."pub_date" DESC"
您看到的添加了表名,因此当您访问多个表时更可靠