首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4中模型关联的范围界定

Rails 4中模型关联的范围界定
EN

Stack Overflow用户
提问于 2014-02-28 06:21:05
回答 3查看 80关注 0票数 2

有两种模式:折扣TimeDiscount

折扣has_one TimeDiscount和TimeDiscount belongs_to折扣。

我需要得到所有的TimeDiscounts和相关的Discount.is_enabled等于true。我该怎么做呢?我知道范围界定,我可以做一些类似的事情:

代码语言:javascript
复制
scope :new_orders, -> { where(order_status: OrderStatus.new_order) } 

请告诉我如何利用这里的社团。

EN

回答 3

Stack Overflow用户

发布于 2014-02-28 06:43:59

代码语言:javascript
复制
Discount.where(is_enabled: true).map do |discount|
  discount.time_discounts
end

这将返回一个与您的需求匹配的TimeDiscount数组。

票数 0
EN

Stack Overflow用户

发布于 2014-02-28 07:11:46

像下面这样的东西?

代码语言:javascript
复制
TimeDiscount.includes(:discount).where(discount: {is_enabled: true})

我相信这也是可行的:

代码语言:javascript
复制
TimeDiscount.includes(:discount).merge(Discount.is_enabled)

(但我得再检查一遍)

票数 0
EN

Stack Overflow用户

发布于 2014-02-28 10:56:30

折扣模型中,

代码语言:javascript
复制
scope :Active_Orders, -> { where(is_enabled: true) }

然后,获取TimeDiscount以获得启用折扣,

代码语言:javascript
复制
@Active_TimeDiscounts = Discount.Active_Orders.map{|active_ord| active_ord.TimeDiscount}

希望它有帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22087739

复制
相关文章

相似问题

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