2010-05-17 22 views
6

के लिए 'validate_on_create' कथन छोड़ना मेरे पास मेरे नियंत्रकों में से एक में 'validate_on_create' कथन है कि मैं अपने सभी बीज डेटा को छोड़ना चाहता हूं। कुछ समाधान क्या हैं ताकि मेरे बीज फ़ाइल में निर्माण विवरण इस सत्यापन को छोड़ देता है। मेरा वर्तमान समाधान हर बार जब मैं रेक डीबी चलाता हूं तो सत्यापन को टिप्पणी कर रहा है: बीज। थोड़ा और चालाक कुछ भी?रेल पर रूबी:

उत्तर

5

आप मॉडल है जो validate_on_create विधि में चेक किया गया है में एक विशेषता जोड़ने विचार किया है?

उदाहरण:

class MyModel < ActiveRecord::Base 

    attr_accessor :skip_on_create_validation 

    def validate_on_create 
    unless skip_on_create_validation 
     # do validation 
    end 
    end 

end 

# In db/seeds.rb 
MyModel.create(:skip_on_create_validation => true, ......) 
+1

क्या वहां है एक रेल 4 इसके बराबर है? मुझे लगता है कि 'validate_on_create' बहिष्कृत है, है ना? –

4

आप अपने बीज पर model.save(false) पर कॉल करके सत्यापन छोड़ सकते हैं, मानते हैं कि आप उन्हें फिक्स्चर के माध्यम से लोड नहीं कर रहे हैं।

+2

लेकिन मैं बीज फ़ाइल में समारोह बनाने का उपयोग कर रहा हूँ। क्या आप सुझाव दे रहे हैं कि मैं नहीं करता? – JackCA

+0

तो 'बनाने' के बजाय 'बिल्ड' फ़ंक्शन –

+0

यह रेल 3 है और यह एक ऑब्जेक्ट सृजन के लिए एकाधिक –

1

जब आप किसी ऑब्जेक्ट को object.save(false) पर कॉल करके सहेजते हैं तो आप स्पष्ट रूप से सभी मान्यताओं को छोड़ सकते हैं।

उदाहरण के लिए:

# In your model 
def validate_on_create 
    # An example validation - replace with whatever you like 
    return true unless name.blank? 
end 

# In db/seeds.rb 
# Create a new person 
p = Person.new(:name => 'Bob') 
# Save the record to the database, and *skip validation* 
p.save(false) 
+0

नहीं है, मुझे इसके बारे में पता है, लेकिन मैं इसे मॉडल मॉडल के बजाय 'Model.create'' के साथ उपयोग करना चाहता हूं। (झूठा) ' –

+0

जब आप' object.create' को कॉल करते हैं तो सत्यापन को छोड़ने का कोई विकल्प नहीं है। क्यों न केवल 'object.save (false)' को कॉल करें? – nfm

+2

क्योंकि मैं इस तरह की कई वस्तुएं बना रहा हूं: 'मॉडल = मॉडल.क्रेट ([{: name => "पहला नाम"}, {: name => "दूसरा नाम"}]) –

संबंधित मुद्दे