एकाधिक विशेषताओं पर विशिष्टता पर 3 सत्यापन


177

मैं 3.0.0.beta4 रेल का उपयोग करता हूं

मैं दो विशेषताओं पर विशिष्टता पर एक सत्यापन जोड़ना चाहते हैं, इसका मतलब है कि अपने मॉडल मान्य है अगर की जोड़ी 'recorded_at'और 'zipcode'अद्वितीय है।

एक विशेषता पर यहाँ वाक्य रचना है

validates :zipcode, :uniqueness => true

धन्यवाद

जवाबों:


333

रेल 2 में, मैंने लिखा होगा:

validates_uniqueness_of :zipcode, :scope => :recorded_at

रेल में 3:

validates :zipcode, :uniqueness => {:scope => :recorded_at}

कई विशेषताओं के लिए:

validates :zipcode, :uniqueness => {:scope => [:recorded_at, :something_else]}

7
मैं कहूंगा कि तार्किक रूप से यह कहने में अधिक समझदारी है कि आपको recorded_atएक ज़िपकोड के दायरे में अद्वितीय होने की आवश्यकता है। validate :recorded_at, : uniqueness => { :scope => :zipcode }
आर्यन

2
आप अभी भी इसे 2 तरह से कर सकते हैं, और मुझे लगता है कि जब तक आप एक ही संपत्ति पर कई प्रकार के सत्यापन नहीं कर रहे हैं तब तक यह अधिक पठनीय है।
zem

24
क्या आप तीन के समूह को मान्य करेंगे validates :zipcode, :uniqueness => {:scope => [:recorded_at, :something_else]}?
ग्रेग गुइडा

5
मुझे लगता है कि यदि आप :scopeविदेशी कुंजियों पर उपयोग करना चाहते हैं , तो आपको :fkey_idप्रतीकों का उपयोग करने की आवश्यकता :fkeyहै, भले ही "बेसिक" :uniquenessकाम करता हो:fkey
nbarraille

1
आप शायद एक कस्टम त्रुटि संदेश जोड़ना चाहते हैं जैसे, :message => ' is taken for this recorded date'
laffuste

96

एकाधिक स्कोप पैरामीटर:

class TeacherSchedule < ActiveRecord::Base
  validates_uniqueness_of :teacher_id, :scope => [:semester_id, :class_id]
end

http://apidock.com/rails/ActiveRecord/Validations/ClassMethods/validates_uniqueness_of

यह ग्रेग के सवाल का जवाब देना चाहिए।


ग्रेग 'मान्य' शॉर्टकट का उपयोग करने में अधिक रुचि रखते थे, इसलिए उनके प्रश्न का एक त्वरित उत्तर "हां" है
elc

यह जानना काफी महत्वपूर्ण है, अगर मैं स्कूप में संघों के लिए जाँच कर रहा हूं तो मुझे यह देखना चाहिए कि क्या मुझे _id (या नहीं) का उपयोग करना चाहिए।
फ्रांसेस्को बेलाडोना

रेल 4.1.6 validates_uniqueness_of में इस उत्तर काम करता है: cart_id, गुंजाइश: [: location_id,: plug_id]
कोनोर

6

मेरे लिए काम मत करो, बहुवचन में गुंजाइश रखने की जरूरत है

validates_uniqueness_of: teacher_id,: गुंजाइश s => [: semester_id,: class_id]

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.