首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solidus:具有多种关系的排序查询

Solidus:具有多种关系的排序查询
EN

Stack Overflow用户
提问于 2018-01-30 14:49:50
回答 1查看 241关注 0票数 0

我正在学习一些Solidus (疯狂的叉子)。我在之后构建了沙箱

现在,我想在products中添加一个作用域来构建一个查询,该查询对产品进行排序,评估每个变体。对于每一种产品,我想评估每一种产品的最低变价。

例如,如果我有三个产品

代码语言:javascript
复制
a.price = 2
b.price = 3
c.price = 4

A和b只有主变体,c有两个变体。

代码语言:javascript
复制
c.variants.first.price = 4
c.variants.last.price = 1

订购的产品应该是

代码语言:javascript
复制
c, a, b

我在使用数组的cache(cache_key_for_products)中成功地做到了这一点,但是我破坏了home/index.html.erb方法中的home#index。

所以我也想做同样的事情,但是使用ActiveRecord_Relation

我不知道如何构建一个好的查询与rails和solidus,任何帮助将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2018-01-30 19:45:03

希望这对你有帮助。

代码语言:javascript
复制
class Product < ApplicationRecord 
 has_many :variants,  dependent: :destroy
end

class Variant < ApplicationRecord
belongs_to :product
end


def index
 @products = Product.left_outer_joins(:variants).order("case when variants.id is null then products.price else variants.price end asc")
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48524232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档