2013-10-10 30 views
0

在我的代码我有一个用户等级:Mongoid has_and_belongs_to_many,inverse_of::零,store_as

class User 
    include Mongoid::Document 
    has_and_belongs_to_many :person_record_bookmarks, inverse_of: nil, :class_name => "PersonRecord" 
end 

现在它会产生在我的文档person_record_bookmarks_ids。这个名字太长了,有没有办法将它作为数据库中较短的名字存储?在嵌入文档中,我们可以使用store_as :,但似乎它不适用于引用。

回答

2

foreign_key是你在找什么

class User 
    include Mongoid::Document 
    has_and_belongs_to_many :person_record_bookmarks, inverse_of: nil, :class_name => "PersonRecord", foreign_key :shorter_name 
end 

那么你的用户将是:

{...shorter_name:[ObjectId("..."),ObjectId("...")]...} 

可以用户user.shorter_name找回ID或user.person_record_bookmarks检索所有的列表PersonRecordBookmarks.where({_ id:{$ in:short_name})

相关问题