Как я могу использовать коллекции пространств имен с Mongoid? - PullRequest
3 голосов
/ 13 июля 2011

Мне нужны такие коллекции, как:

  • client1.users
  • client1.images
  • client2.users
  • client2.images

MongoDB поддерживает пространство имен Collection.http://www.mongodb.org/display/DOCS/Using+a+Large+Number+of+Collections

Использование драйвера Ruby для MongoDB не составит проблемы, но я хочу иметь ODM.

Как использовать коллекции пространств имен с Mongoid?

1 Ответ

3 голосов
/ 14 июля 2011

Вы можете поместить свои модели в пространства имен с помощью Mongoid.Вы должны будете указать полное имя класса в любых определяемых вами ассоциациях, например,

module Client1
  class Image
    include Mongoid::Document
    referenced_in :user, :inverse_of => :images, :class_name => 'Client1::User'
  end

  class User
    include Mongoid::Document
    references_many :images, :inverse_of => :user, :class_name => 'Client1::Image'
  end
end

Mongoid отобразит эти два класса в коллекции MongoDB client1_images и client1_users соответственно.

...