Ho un modello Indirizzo come seguireMongoID, incorporando un documento in più documenti
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
ci sono modelli College e l'utente che incorporare l'indirizzo
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
io sono sempre alcuni problemi con la messa a punto di cui sopra . Sto usando un unico modulo per chiedere l'indirizzo attuale e permanente insieme ad altre informazioni, ma solo l'indirizzo corrente viene salvato e anche quello con i dati che compio in indirizzo_fisso.
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')}}})
Non sono sicuro se questo è qualcosa che sto facendo male qui o c'è qualche altro problema. Sto usando Rails 3.0.4 e MongoID 2.0.0.rc.7
Aggiornamento:
ho aggiornato a 2.0.1 mongoid e cambiato il mio utente per includere inversa di opzioni in indirizzo.
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
so l'inverso di nomi non ha senso, ma il punto principale qui è solo per renderli diversi o se si dispone di nomi buoni per le relazioni della tua classe incorporato (come: CURRENT_USER,: permanent_user) , dovresti usarlo per l'inverso di.
grazie per la conferma – rubish
sto affrontando alcuni problemi con quanto sopra. Sto usando un singolo modulo per ottenere indirizzo_corrente e indirizzo_sempre, ma viene salvato solo l'indirizzo corrente. – rubish