Я нашел разумный способ для пространства имен моделей в Mongoid и уменьшить накладные расходы.
Я называю модели так: BlogPost, BlogComment, BlogCategory
А в модели я использую class_name и inverse_of:
class BlogPost
include Mongoid::Document
# ... lots of stuff ommitted
has_many :comments, class_name: 'BlogComment', inverse_of: :post
end
class BlogComment
include Mongoid::Document
# ... lots of stuff ommitted
belongs_to :post, class_name: 'BlogPost', inverse_of: :comments
end
И доступ через:
post = BlogPost.first
post.comments.first # get comments
BlogComment.first.post # get related post
Это делает цепочку доступа короткой и лучше, чем:
post = BlogPost.first
post.blog_comments.first # get comments
BlogComment.first.blog_post # get related post
Подробнее: http://mongoid.org/docs/relations.html