gpt4 book ai didi

ruby-on-rails - belongs_to 关联的 Rails 作用域

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:43 25 4
gpt4 key购买 nike

想象一本书和一个章节模型。每章 belongs_to :book,一本书 has_many :chapters。我们在章节上有范围,例如 :very_long 返回超过 300 页的章节。

很多时候我们想要得到任何章节超过 300 页的所有书籍。我们通常实现的方式是这样的:

# book.rb
scope :has_very_long_chapter, -> { where(id: Chapter.very_long.select(:book_id) }

但是,正如您想象的那样,每次我们想要按章节范围过滤书籍时代理范围会变得非常乏味。有没有更惯用或更简洁的方法来实现这一目标?

最佳答案

要获得这些书籍,您可以使用 ActiveRecord::SpawnMethods#merge ,并且您不必使用其他范围:

Book.joins(:chapters).merge(Chapter.very_long) 

关于ruby-on-rails - belongs_to 关联的 Rails 作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42148433/

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