سؤال

في Rails 2.x ، يمكنك استخدام عمليات التحقق للتأكد من أن لديك قيمة مشتركة فريدة مثل هذه:

validates_uniqueness_of :husband, :scope => :wife

في الترحيل المقابل ، يمكن أن يبدو هكذا:

add_index :family, [:husband, :wife], :unique => true

هذا من شأنه أن يتأكد من أن مجموعة الزوج/الزوجة فريدة من نوعها في قاعدة البيانات. الآن ، في Rails 3 تم تغيير بناء جملة التحقق من الصحة ويبدو أن سمة النطاق قد اختفت. يبدو الآن مثل:

validates :husband, :presence => true

أي فكرة كيف يمكنني تحقيق التحقق المشترك في القضبان 3؟ لا تزال عمليات التحقق من صحة Rails 2.x تعمل في Rails 3 ، لذا لا يزال بإمكاني استخدام المثال الأول ولكن يبدو "قديمًا" ، هل هناك طرق أفضل؟

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

المحلول

تحمل معي. الطريقة التي تؤدي التحقق من صحة طريقة ActiveModel هي البحث عن مدقق.

:presence => true يبحث عن PresenceValidator ويمرر الخيارات: true إلى مُهيئ المدقق.

أعتقد أنك تريد

validates :husband, :presence => true, :uniqueness => {:scope => :wife}

(يعد مدقق التفرد جزءًا من ActivereCord ، وليس ActivEmodel. من المثير للاهتمام حقًا كيف يقوم المطورون بإعداد هذا. إنه أنيق تمامًا.)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top