链接范围和访问其他对象

时间:2015-12-11 10:18:23

标签: ruby-on-rails ruby mongoid

我必须使用模型,LibraryBook

class Library
  include Mongoid::Document
  field :name, type: String
  has_many :books

  scope :first_scope, -> do
    logger.debug Book.all.entries
    where(name: "Foo")
  end

  scope :second_scope, -> do
    logger.debug Book.all.entries
    where(name: "Bar")
  end
end

class Book
  include Mongoid::Document
  field :title, type: String
  belongs_to :library
end

现在,如果我像这样Library.first_scope.second_scope链接范围,第一个的调试将返回现有书籍的列表,这是我所期望的,但第二个返回现有库的列表,如如果我做logger.debug Library.all.entries

为什么?为什么我可以访问第一个范围中的Book集合,而不是第二个范围内的Book集合?我怎样才能访问第二个范围内的sp_configure ‘show advanced options’, 1; GO reconfigure GO sp_configure ‘user connections’, 0; GO reconfigure GO 集合?

1 个答案:

答案 0 :(得分:0)

我最终使用了Moped,这似乎工作正常......不知道为什么。

scope :second_scope, -> do
  logger.debug Book.collection.find.first  # Returns a Book, yay!
  where(name: "Bar")
end