gpt4 book ai didi

ruby-on-rails - 协会 Rails 4 的条件

转载 作者:行者123 更新时间:2023-12-04 06:14:20 24 4
gpt4 key购买 nike

有一种方法可以将某些东西加入到 ActiveRecord 的关联表中吗?

我以这种方式检索:

@segments = Segment.all

但是,一个Segment 有_many products。见:

models/product.rb:

class Product < ActiveRecord::Base
belongs_to :segment, dependent: :destroy
end

models/segment.rb:

class Segment < ActiveRecord::Base
has_many :products
end

问题是:我只想检索其状态等于 1 的产品。我可以在 Segment 模型上使用 where 调节类似这样的东西,但是如何为 products 实现这个?

我已经尝试过的

我找到了一个解决方案。看一看:

@segments = Segment.find(:all, include: :products, conditions: {products: {status: 1}})

它有效,但我认为代码可以做得更好。

为什么我认为代码可以更好

那么,如果关联已经存在于模型中,我为什么要使用 include::products?我们正在通过模型关联事物,我确信这已经足够了。

想法?

最佳答案

Segment.joins(:products).where("products.status = 1")

您也可以使用包含而不是连接。但是 Rails 会在内部将其转换为连接,因为您在查询中使用了 products 表属性

关于ruby-on-rails - 协会 Rails 4 的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22535682/

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