سؤال

لدي نموذج يحتوي على حقلين، وأود أن أسميه first_name و last_name، وأريد التأكد من أن مزيج من الفريدين بلا حدود. لقد حصلت في منتصف الطريق هناك باستخدام هذا:

validates_uniqueness_of :first_name, :scope => :last_name

المشكلة هي أن فحص التفرد حساس لحالة الأحرف، على الرغم من وثائق يقول أنه ينبغي أن يكون غير حساس للحالة بشكل افتراضي. لذلك بالنظر إلى سجل موجود:

{ :first_name => 'John', :last_name => 'Smith' }

سيتم السماح بذلك:

{ :first_name => 'JOHN', :last_name => 'SMITH' }

بالإضافة إلى أي سجل إضافي حيث يوجد أي تباين للحالة في الاسم الأول أو الأخير. لماذا يتم السماح بهذه السجلات؟ كيف يمكنني فرض حالة عدم حساسة التفرد في كلا الحقلين معا؟

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

المحلول

هل جربت validates_uniqueness_of :first_name, :scope => :last_name, :case_sensitive => false?

ال الوثائق تقول هذا صحيح افتراضيا.

(أعتقد أن الرابط الذي قدمته هو لبعض الوثائق القديمة. IIRC، الافتراضي لهذا التغيير قد تغير في العامين الماضيين.)

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