作用域不适用于子作用域。即:
Book.where(title: some_title).scoping { some_library.books.first }
并没有做我希望的事情。有没有一种方法可以设置一个作用域,并将其应用到块内的子作用域?
0g0grzrc1#
下面的代码可能会有帮助。
class Library < ApplicationRecord has_many :books scope :is_e, { where(electronic: true) } end class Book < ApplicationRecord belongs_to :library scope :with_title, -> (value) { where(title: value) } scope :in_e_library, -> { joins(:library).merge(Library.is_e) } end Book.with_title(some_title).in_e_library
1条答案
按热度按时间0g0grzrc1#
下面的代码可能会有帮助。