SORU
1 HAZİRAN 2009, PAZARTESİ


accepts_nested_attributes_for çocuk Derneği doğrulama başarısız

Raylar benim modellerinden biri accepts_nested_attributes_for kullanıyorum, ve üst oluşturduktan sonra çocukları kurtarmak istiyorum.

Formu mükemmel çalışıyor, ama doğrulama başarısız oluyor. Basitlik aşkına düşün şu:

class Project < ActiveRecord::Base
  has_many :tasks
  accepts_nested_attributes_for :tasks
end

class Task < ActiveRecord::Base
  belongs_to :project

  validates_presence_of :project_id
  validates_associated :project
end

Ve çalışan biriyim

Project.create!(
  :name => 'Something',
  :task_attributes => [ { :name => '123' }, { :name => '456' } ]
)

Proje modeli kaydetme sırasında, doğrulama project_id proje kurtardı yok () yok çünkü görevler düşüyor.

Raylar aşağıda desen aşağıdaki gibidir:

  • Doğrulamak Proje
  • Doğrulamak Görevleri
  • Proje Kaydet
  • Görevleri Kaydedin

Desen: olmalıdır

  • Doğrulamak Proje
  • Pass: Proje Kaydet ve devam et...
  • Doğrulamak Görevleri
    • Pass: Görevleri Kaydedin
    • Başarısız: Sil Projesi (geri alma olabilir mi?)

Yani benim soru aşağı kaynar: Nasıl Raylar çalıştırmak için project_id= (veya proje=) yöntemi ve doğrulama çocukları (görevler) SONRA üst (proje) oldu kurtardı, ama DEĞİL üst (proje) modeli, tüm alt (görev) geçersiz mi?

Herhangi bir fikir?

CEVAP
24 Ocak 2011, PAZARTESİ


:inverse_of validates_presence_of :parent kullanın. Bu doğrulama sorunu düzeltmek gerekir.

   class Dungeon < ActiveRecord::Base
     has_many :traps, :inverse_of => :dungeon
   end

   class Trap < ActiveRecord::Base
     belongs_to :dungeon, :inverse_of => :traps
     validates_presence_of :dungeon
   end

http://apidock.com/rails/ActiveModel/Validations/HelperMethods/validates_presence_of

https://github.com/rails/rails/blob/73f2d37505025a446bb5314a090f412d0fceb8ca/activerecord/test/cases/nested_attributes_test.rb

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AceHoodVEVO

    AceHoodVEVO

    12 Mayıs 2009
  • GOTO Conferences

    GOTO Confere

    3 EKİM 2011
  • michellefeng's channel

    michellefeng

    26 Kasım 2006