我正在創建描述一個人的配置文件。本說明中包含有關他們在哪些工作環境下(即「計算機& IT」)的什麼工業的信息。因此,關係如此定義的:Mongoid:如何反轉1-N關係,並將外鍵存儲在父項上?
"A Profile has an Industry, but an Industry does not belong to a Profile."
翻翻this Mongoid documentation,我建立了我的模型有以下:
class Profile
include Mongoid::Document
has_one :industry
end
class Industry
include Mongoid::Document
field :name, type: String, default: ''
end
現在我通常知道你想補充belongs_to :profile
到產業班。然而,根據該文件,它增加了外鍵子(工業),而不是父(配置文件):
# The parent profile document.
{ "_id" : ObjectId("4d3ed089fb60ab534684b7e9") }
# The child industry document.
{
"_id" : ObjectId("4d3ed089fb60ab534684b7f1"),
"profile_id" : ObjectId("4d3ed089fb60ab534684b7e9")
}
這是問題,因爲我不希望一個行業鏈接到個人資料,我希望配置文件鏈接到行業。 我如何使它看起來像這樣?:
# The parent profile document.
{ "_id" : ObjectId("4d3ed089fb60ab534684b7e9")
"industry_id" : ObjectId("4d3ed089fb60ab534684b7f1")
}
# The child industry document.
{
"_id" : ObjectId("4d3ed089fb60ab534684b7f1"),
}
也許我是誤解,但不應該'工業''has_many:profiles'和'Profile'' belongs_to:industry'? – WiredPrairie 2013-04-21 18:28:33
是的,顛倒'has_one'和'belongs_to'工作。我被拋棄了,因爲從英語的角度來看,說*「一個配置文件屬於一個行業」是沒有意義的* – 2013-04-21 19:23:29