gpt4 book ai didi

mysql - 如何在 SmartListing gem 中使用实例方法而不是 MySQL 字段?

转载 作者:行者123 更新时间:2023-11-29 23:24:54 24 4
gpt4 key购买 nike

我将 SmartListing gem 与我的 Ruby (2.1.2p95) on Rails (4.0.0) 项目结合使用,从 ActiveRecord 记录组创建可排序/分页表,我们将其称为订单。每个订单可以有许多项目,每个项目的表上都有一个成本字段。我需要能够按订单号(订单表中的字段)、商品数量(订单模型上的类方法)和总成本(订单模型上的类方法)进行排序。

有没有办法使用显式的 sort_attributes 来调用该方法(即 order.item_total 或 order.number_of_items),而不是使用 MySQL 表中不存在的字段? “orders”表中没有“item_totals”列或“number_of_items”列,这两个调用都是“items”表中字段/计数的聚合。

@orders = smart_listing_create(:orders, @user.orders, partial: 'orders/order', sort_attributes: [[:id, 'id'],[:item_total, '???'],[:number_of_items, '???']]

提前感谢您的帮助,如果我可以澄清任何问题,请告诉我。

-戴夫

最佳答案

所以没有任何方法可以完全按照我要求的方式完成我所要求的事情(基本上是将 Ruby 代码与 SQL 结合起来)。不过,还是有办法解决的!由于 smart_listing 确实支持显式排序(按连接列名称排序,即 [:created_at, 'orders.items.created_at'] if orders.joins(:items )),您可以简单地创建一些派生表并使用显式排序对它们进行排序。瞧!

关于mysql - 如何在 SmartListing gem 中使用实例方法而不是 MySQL 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27046116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com