tengo un modelo de Dirección como seguirMongoId, la incorporación de un documento en varios documentos
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
hay modelos College y del usuario, que incrustar la dirección
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
estoy recibiendo algunos problemas con la configuración anterior . Estoy usando un formulario único para solicitar una dirección actual y permanente junto con más información, pero solo se está guardando la dirección actual y eso también con los datos que llené en permanent_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')}}})
No estoy seguro de si esto es algo que estoy haciendo mal aquí o si hay algún otro problema. Estoy usando Rails 3.0.4 y MongoId 2.0.0.rc.7
Actualización:
He actualizado a 2.0.1 y MongoId cambiado de usuario para incluir inversa de opciones en la dirección.
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
sé la inversa de nombres no tiene sentido, pero el punto principal aquí es sólo para hacerlos diferentes o si tiene buenos nombres para las relaciones de su clase incorporado (como: current_user,: permanent_user) , deberías usar eso para el inverso de.
gracias por la confirmación – rubish
Tengo algunos problemas con los de arriba. Estoy usando un formulario único para obtener la dirección_corriente y la dirección_permanente, pero solo se guarda la dirección actual. – rubish