微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在使用 rails6 中的连接执行基于转换表字段的排序时获取当前区域设置数据而不是全部

如何解决如何在使用 rails6 中的连接执行基于转换表字段的排序时获取当前区域设置数据而不是全部

我需要根据 product_statuses 表的 translations 表的 'name' 字段的升序/降序对产品进行排序。

在控制器中,我使用:

products = Product.where(id: pr_ids).ordered_status(sort_order)

product_status.rb

has_many :products

product.rb

belongs_to :status,class_name: "ProductStatus",foreign_key: "status_id",inverse_of: :products,optional: true

product_status_translations 表详情如下:

         Column              |              Type             

 id                              | bigint                        
 product_status_id               | integer                       
 locale                          | character varying             
 created_at                      | timestamp(6) without time zone
 updated_at                      | timestamp(6) without time zone
 name                            | character varying             

在 products.rb 中,我写了一个范围来按名称顺序获取产品:

scope :ordered_status,-> (sort_order) {joins(status: :translations).order("name    "+sort_order)}

我正在按顺序获取产品,但考虑到所有语言环境,正在获取多条记录。不仅获取当前用户语言环境,还获取所有语言环境。因此,产品结果记录会出现重复。

请帮忙

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。