2012-04-09 10 views
17

यह एक मूर्ख समस्या की तरह लगता है लेकिन मुझे कहीं भी जवाब नहीं मिल रहा है!update_attributes पर सत्यापन छोड़ना संभव है?

क्या यह update_attributes() और save(validate: false) में मान्यताओं को छोड़ना संभव है?

मेरे पास कुछ लंबा text (string नहीं) फ़ील्ड के साथ लंबा फॉर्म है, और मैं उपयोगकर्ता को फॉर्म पर अपनी प्रगति को सहेजने की क्षमता प्रदान करना चाहता हूं। आम तौर पर, मैं इसे सबमिट करने और आगे बढ़ने में सक्षम होने से पहले उत्तर पर लंबाई न्यूनतम, आदि चाहता हूं, लेकिन इस मामले में जहां वे "सहेजें" पर क्लिक कर रहे हैं, मैं जो भी प्रगति करता हूं उसे रखना चाहता हूं डेटाबेस ताकि वे वापस आ सकें और बाद में खत्म कर सकें। क्या इस मामले में सत्यापन को छोड़ने का कोई तरीका है?

चारों ओर देख से ऐसा प्रतीत होता केवल एक चीज मैं ऐसा कर सकते हैं की तरह अलग-अलग क्षेत्र की गणना है:

@obj.field1 = ... 
@obj.field2 = ... 
@obj.field3 = ... 
... 
@obj.save(:validate => false) 

वास्तव में ऐसा है कि है? मैं भविष्य में किसी बिंदु पर एक और क्षेत्र जोड़ने के बारे में चिंतित हूं और यहां नियंत्रक को अपडेट करना भूल गया हूं। रेल के लिए

+0

भी देखें [इस सवाल] (http://stackoverflow.com/questions/2998780/how-to-update-attributes-without-validation) अगर आप केवल एक विशेषता अपडेट कर रहे हैं। –

उत्तर

28
@obj.attributes = params[:obj] 
@obj.save(false) 

अद्यतन 3

@obj.attributes = params[:obj] 
@obj.save(:validate => false) 
+0

आह, उसने ऐसा किया! धन्यवाद, बहुत आसान है। –

+25

यह @ obj.save होना चाहिए (मान्य: झूठा) – thekindofme

+2

क्या यह केवल एक निश्चित सत्यापन @thekindofme के साथ किया जा सकता है? –

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