2012-04-09 20 views
17

Bu aptalca bir problem gibi görünüyor ama cevabı hiçbir yerde bulamıyorum!Güncelleme_attributes'ta validasyonları atlamak mümkün mü?

update_attributes() ile atlamak ve save(validate: false) gibi atlamaları doğrulamak mümkün mü?

Bazı uzun text (string) alanlarına sahip uzun bir form var ve kullanıcıya formda ilerlemelerini kaydetme olanağı sunmak istiyorum. Normalde, cevapları gönderebilmeleri ve devam edebilmeleri için cevapların asgari uzunluklarını vb. Istiyorum, ancak "Kaydet" i tıkladıkları durumda, ne tür bir ilerleme kaydettiklerini belirtmek isterim veritabanı böylece geri gelip daha sonra bitirebilirler. Bu durumda doğrulamaları atlamanın bir yolu var mı?

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

gerçekten durum böyle mi: etrafa itibaren

, Yapabileceğim tek şey şöyle tek tek her alanı numaralandırmak gibi görünüyor? Gelecekte bir noktaya başka bir alan eklemek ve kontrol cihazını güncellemeyi unutmaktan endişelenirim. Raylar için

+0

Ayrıca bakınız [bu soru] (http://stackoverflow.com/questions/2998780/how-to-update-attributes-without-validation) Yalnızca bir özelliği güncelliyorsanız. –

cevap

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

Güncelleme 3

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

Ah, bunu yaptı! Teşekkürler, çok basit. –

+25

@ obj.save (validate: false) olmalıdır – thekindofme

+2

Bu yalnızca belirli bir doğrulama @thekindofme ile yapılabilir mi? –