У меня есть модель Адрес, как следующийMongoid, вложение документа в нескольких документах
class Address
include Mongoid::Document
field :line1
field :city
# more fields like this
embedded_in :user, :inverse_of => :permanent_address
embedded_in :user, :inverse_of => :current_address
embedded_in :college, :inverse_of => :address
end
Есть модели колледж и пользователь, которые встраивать адрес
class College
include Mongoid::Document
references_many :users
embeds_one :address
# some fields and more code
end
class User
include Mongoid::Document
referenced_in :college, :inverse_of => :users
embeds_one :permanent_address, :class_name => "Address"
embeds_one :current_address, :class_name => "Address"
# fields and more code
end
я получаю некоторые проблемы с выше настройками , Я использую одну форму для запроса текущего и постоянного адреса вместе с дополнительной информацией, но сохраняется только текущий_датчик, и это тоже с данными, которые я заполняю в файле constant_address.
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"KdOLvzmKyX341SSTc1SoUG6QIP9NplbAwkQkcx8cgdk=",
"user"=> {
"personal_info_attributes"=>{...},
"nick_names_attributes"=>{...},
"current_address_attributes"=>{
"line1"=>"",
"area"=>"",
"country"=>"USA",
"postal_code"=>"sd",
"city"=>"",
"state"=>"",
"landmark"=>"",
"id"=>"4d891397932ecf36a4000064"
},
"permanent_address_attributes"=>{
"line1"=>"",
"area"=>"asd",
"country"=>"india",
"postal_code"=>"",
"city"=>"",
"state"=>"",
"landmark"=>""
},
"commit"=>"Submit", "id"=>"4d8903d6932ecf32cf000001"}
MONGODB alma_connect['users'].find({:_id=>BSON::ObjectId('4d8903d6932ecf32cf000001')})
MONGODB alma_connect['users'].update({"_id"=>BSON::ObjectId('4d8903d6932ecf32cf000001')},
{"$set"=>{
"current_address"=>{
"line1"=>"",
"area"=>"asd",
"country"=>"india",
"postal_code"=>"",
"city"=>"",
"state"=>"",
"landmark"=>"",
"_id"=>BSON::ObjectId('4d8916e9932ecf381f000005')}}})
Я не уверен, что это то, что я делаю неправильно здесь или есть какая-то другая проблема. Я использую Rails 3.0.4 и Mongoid 2.0.0.rc.7
Обновление:
Я повышен до Mongoid 2.0.1 и изменил мою пользователю включить инверсию вариантов в адрес.
class User
include Mongoid::Document
referenced_in :college, :inverse_of => :users
embeds_one :permanent_address, :class_name => "Address", :inverse_of => :permanent_address
embeds_one :current_address, :class_name => "Address", :inverse_of => :current_address
# fields and more code
end
Я знаю, что обратные имена не имеет смысла, но главное здесь, это просто сделать их разными, или если у вас есть хорошие имена для отношений в вашем встроенном классе (например: current_user,: permanent_user) , вы должны использовать это для обратного.
благодарит за отказ – rubish
У меня возникли проблемы с вышеуказанным. Я использую одну форму для получения current_address и constant_address, но сохраняется только текущий адрес. – rubish