首先:假设我有一个User类,并希望在User类之外创建User范围。例如,我有一个Book类,我希望它为想要阅读该书的用户返回一个范围:
class Book < ActiveRecord::Base
def interested_users
Users.scoped.where(sql_for_they_would_like_to_read_this_book)
end
end
现在,假设我有一系列书籍,我想为想要阅读所有书籍的用户创建一个范围。如何将这几个范围一起应用?
def union_scopes(scope1, scope2)
???
end
would_like_to_read_all_books = User.scope
books.each do |book|
would_like_to_read_all_books = union_scopes(user_scope, book.interested_users)
end
我知道如果范围是在用户上定义的,我可以做
User.interested_in_book(book1).interested_in_book(book2) ...
但那不是我想要的地方。
答案 0 :(得分:0)