2012-04-09 10 views
17

To wydaje się głupim problemem, ale nigdzie nie mogę znaleźć odpowiedzi!Można pominąć sprawdzanie poprawności na update_attributes?

Czy jest możliwe update_attributes() i pominąć sprawdzanie poprawności, jak w przypadku save(validate: false)?

Mam długą formę z długimi polami text (nie string), a chciałbym zaoferować użytkownikowi możliwość zapisywania postępów w formularzu. Normalnie, chcę odpowiedzi na pytania dotyczące minimalnej długości itp., Zanim będą mogli je przesłać i przejść dalej, ale w przypadku, gdy po prostu klikają "Zapisz", chciałbym wprowadzić wszelkie postępy, jakie poczynili w bazę danych, aby mogli wrócić i zakończyć później. Czy istnieje sposób na pominięcie sprawdzania poprawności w tym przypadku?

Od rozglądać, wydaje się jedyną rzeczą, jaką mogę zrobić, to wymienić każde pole indywidualnie tak:

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

Czy rzeczywiście tak jest? Byłbym zmartwiony o dodanie kolejnego pola w pewnym momencie w przyszłości i zapomnienie o aktualizacji kontrolera tutaj.

+0

patrz też [to pytanie] (http://stackoverflow.com/questions/2998780/how-to-update-attributes-without-validation) jeśli aktualizujesz tylko jeden atrybut. –

Odpowiedz

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

Aktualizacja szyn 3

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

Ah, to zrobiło! Dzięki, bardzo proste. –

+25

to powinno być @ obj.save (sprawdzanie poprawności: fałsz) – thekindofme

+2

Czy można to zrobić tylko z pewną weryfikacją @thekindofme? –

Powiązane problemy