如何解决如何在使用 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 举报,一经查实,本站将立刻删除。