J'ai du mal à conserver mes documents en mongoïde. Je le fragment de code suivant dans mon contrôleur:Persistance du document Mongoid après la recherche
params[:user][:residence_attributes][:locations_attributes].each do |num,location_attributes|
zipcode = Location.find(location_attributes[:id])
if !zipcode.update_attributes(location_attributes)
puts "fail"
fail = true
end
puts "zipcode again #{zipcode}"
puts "zipcode number #{zipcode.number}"
puts "zipcodes = #{Zipcode.count}"
zipcode = Zipcode.find(@user.residence.locations[0].id)
puts "zipcode again #{zipcode}"
puts "zipcode number #{zipcode.number}"
puts "zipcodes = #{Zipcode.count}"
zipcode = Zipcode.find(@user.residence.locations[0].id)
puts "zipcode again #{zipcode}"
puts "zipcode number #{zipcode.number}"
puts "zipcodes = #{Zipcode.count}"
end
Et il donne le résultat suivant:
zipcode again #<Zipcode:0x000000063826a0>
zipcode number 11210
zipcodes = 1
zipcode again #<Zipcode:0x00000006348860>
zipcode number
zipcodes = 1
zipcode again #<Zipcode:0x00000006340ef8>
zipcode number
zipcodes = 1
La question est pourquoi le code postal id change quand je trouve le document les deuxième et troisième temps?
Ceci est un problème car le document ne persiste pas.
J'ai les modèles suivants:
class Zipcode < Location
include Mongoid::Document
attr_accessible :number
attr_accessor :number
validates_presence_of :number
validate :check_zipcode
end
class Location
include Mongoid::Document
attr_accessible :latitude, :longitude
belongs_to :locatable, polymorphic: true
end
class UserResidence
include Mongoid::Document
has_many :locations, as: :locatable
embedded_in :user, :inverse_of => :residence
attr_accessible :locations_attributes
accepts_nested_attributes_for :locations, autosave: true
#validates_presence_of :locations
#validates :locations, :length => {:minimum => 1}
end
Merci
Autosave est vrai, je mettrai à jour le poste avec le modèle user_residence. De toute façon, je suis en train de mettre à jour le code postal directement, donc aurais-je encore besoin d'autosave? – GTDev
Il y a aussi un Bug connexe dans Mongoid: https://github.com/mongoid/mongoid/issues/1198 – Tilo
Le bug est-il toujours dans mongoid 2.2.1? parce que c'est la version que j'utilise – GTDev