我了解inverse_of的作用,但我不了解inverse_of的作用:无。 例如,
class Book
include Mongoid::Document
belongs_to :author, inverse_of: nil
end
class Author
include Mongoid::Document
end
作者与书本之间没有关联。使用作者和书籍可能是一个不好的例子,但我希望您能理解。我看到inverse_of: nil
用了很多。所以想了解它。
答案 0 :(得分:2)
它涵盖了Mongoid
的特定情况,其中没有定义相反的关系。
在您的示例中,您需要在inverse_of: nil
中包含class Book
。如果 class Author
不使用has_many :books
。
传统案例:
# app/models/book.rb
class Book
field :title
belongs_to :author
end
# app/models/author.rb
class Author
field :name
has_many :books
end
没有对立关系的情况:
class Book
field :title
belongs_to :author, inverse_of: nil
end
# here we use `get_books` instead of `has_many :books`
# so we need `inverse_of: nil` so Mongoid doesn't get confused
class Author
field :name
# has_many :books
def get_books
Book.in(author_id: self.id)
end
end