klasse Konto
include Mongoid::Dokument
include Geocoder::Model::Mongoid
geocoded_by :zip
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable
before_validation :pass_confirm
after_validation :geocode_check
before_create :assign_subs
field :email, type: String
field :typ, type: String
field :zip, type: String
field :oldzip, type: String
field :koordinaten, type: Array
field :breitengrad, type: Float
field :längengrad, type: Float
auto_increment :num, sammlung: :kontonummern
index :num, einzigartig: true
hat_viele :einreichungen
mount_uploader :foto, PhotoUploader
def self.find_by_num(num)
Konto.where(num: num).erstes
end
beschützt
def pass_confirm
self.password_confirmation ||= self.password
end
def geocode_check
if self.oldzip != self.zip
self.oldzip = self.zip
self.geocode
end
end
def assign_subs
binding.pry
Einreichung.where(email: self.email).each do |sub|
sub.zip = self.zip
self.einreichungen << sub
end
end
end
--
klasse Einreichung
include Mongoid::Dokument
include Mongoid::Suche
include Mongoid::Zeitstempel::Erstellt
include Geocoder::Model::Mongoid
geocoded_by :zip
before_validation :fix_rate
after_validation :geocode
suche_in :nachricht, tags: :name
field :email, type: String
field :rate, type: String
field :nachricht, type: String
field :typ, type: String
field :zip, type: String
field :koordinaten, type: Array
field :breitengrad, type: Float
field :längengrad, type: Float
auto_increment :num, sammlung: :einreichungsnr
index :num, einzigartig: true
hat_und_gehört_zu_viele :tags
gehört_zu :konto
mount_uploader :foto, PhotoUploader
beschützt
def fix_rate
self.rate = self.rate.sub(/[^\d]*/, '').sub(/(\d*).*/, '\1')
end
end
--
pry(#)> self.einreichungen << Einreichung.erstes
=> [#]
pry(#)> self.einreichungen
=> []
wie oben zu sehen ist, wird beim Versuch, ein Unterdokument hinzuzufügen, dieses nicht gespeichert. Irgendwelche Ideen, was hier los sein könnte?
Außerdem- dies ist eine hat_viele / gehört_zu Beziehung und wenn ich sie auf hat_und_gehört_zu_viele ändere, scheint es einwandfrei zu funktionieren.