القضبان Validates_Uniqueness_of عبر أعمدة متعددة مع عدم الحساسية
-
19-09-2019 - |
سؤال
لدي نموذج يحتوي على حقلين، وأود أن أسميه 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، الافتراضي لهذا التغيير قد تغير في العامين الماضيين.)
لا تنتمي إلى StackOverflow