mongodb rails nested child için invalid path hatası

Merhabalar,

Bir proje için rails ve mongodb’yi (mongoid aracılığı ile) beraber kullanıyorum.

Proje sırasında bir hata ile karşılaştım ve sizlerle paylaşmak istedim.

Standart parent-child işlemlerinde mongoid herhangi bir problem oluşturmuyor. GÖnül rahatlığı ile kullanabilirsiniz. İster embeds_many / embedded_in, ister has_many / belongs_to ayrı ayrı sorunsuz çalışıyor.

Bu senaryomuz biraz garip;
“Post” modeli “embeded” olarak comment modelini barındırıyor. comment modeli ise user modeli ile has_many / belongs_to yapısı ile ilişkili. Bu ilişki yapısı ile Post nesnesi ile beraber tüm ilgili Comment‘leri User bilgileri ile erişebiliyoruz. Ayrıca User üzerinden yazdığı Comment‘lere de erişmeyi hedefliyorum / hedefliyordum :).

İşte bu durumda mongoid biraz problem yaşıyor.

class Post
  include Mongoid::Document
  include Mongoid::Timestamps
  embeds_many :comments
end

class Comment
  include Mongoid::Document
  include Mongoid::Timestamps
  embedded_in :post
  belongs_to :user # Causes mongoid invalid path error during nested child save
end

class User
  include Mongoid::Document
  include Mongoid::Timestamps
  has_many :comments # Causes mongoid invalid path error
end

has_many / belongs_to ilişkisi yerine Comment üzerinde “user_id” bilgisini tutup manuel olarak işlemleri yaptığımızda problem yaşanmıyor.

İyi çalışmalar.

Share