2013-10-10 57 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})

相關問題