سؤال

لقد كنت أستخدم accounts_nested_attributes_for لعدد قليل من النماذج المختلفة ولدي وضع غريب.

يمكنني تخطي الفراغات إنشاء من خلال النموذج العلوي ، ويمكنني التحقق من صحة السجلات الفردية من خلال القاع ، ولكن هل من الممكن إجراء التحقق الأكثر تعقيدًا على مجموعة من السجلات؟

لدي غرف وأسعار النماذج. الغرف has_many الأسعار و archings_nested_attributes_for أسعار.

أستطيع أن أتخلص من الفراغات

accepts_nested_attributes_for :room_rates, :reject_if => lambda { |a| a[:price].blank? }

ولكن لكل غرفة هناك 7 سجلات مختلفة (أسعار) .. دائمًا 7 وتقديمها مرة واحدة من نفس النموذج. حاليًا إذا دخلوا يومًا واحدًا فقط ، فسيسمح ذلك بذلك. ومع ذلك أود التحقق من صحة أن جميع السبعة يجب أن تكون موجودة. إما أنهم يدخلون جميعهم 7 ويقبلونه أو يمنحهم خطأً لإدخال 1 أو 2. فقط ولا يفعلون شيئًا على الإطلاق إذا تركوا كل السبعة فارغين تمامًا.

لم أر شيئًا كهذا حتى الآن لـ nested_attirbutes ، لذا فأنا أتساءل عما إذا كان ذلك ممكنًا.

هل كانت مفيدة؟

المحلول

لست متأكدًا من أن هذا سيعمل ، لكن لا يمكنك التحقق من حجم المعدلات في فئة غرفتك ، شيء مثل:

class Room < ActiveRecord::Base
  validate :all_rates_present

...

private
def all_rates_present
  unless rates.size == 7
    errors.add(:rates, "must all be filled in.")
  end
end
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top