2010-10-12 11 views
6

I ten model:Szyny potwierdzające wirtualnych atrybutów

class Bunny < ActiveRecord::Base 
    attr_accessor :number 
    validates_presence_of :number 
    validates_numericality_of :number 
end 

Ilekroć złożyć formularz do stworzenia tego modelu pojawia się następujący błąd:

niezdefiniowana metoda `number_before_type_cast” dla # < Bunny: 0x103624338 >

Odpowiedz

2

Naprawiłem problem dodając ten sposób do mojego modelu Bunny:

def number_before_type_cast 
    number 
end 

mi się to nie podoba, ale przypuszczam, że to będzie działać, dopóki ktoś księguje lepsze rozwiązanie.

+0

Tak, nie mam lepszego pomysłu. – Matt

1

Szyny generują FIELDNAME_before_type_cast w modelu dla każdego pola. Przechowuje wartość z formularza jako ciąg przed przekształceniem (rzutowaniem) w tym przypadku na liczbę (może to być na przykład data). Odlew ten występuje przed zapisaniem, ale po sprawdzeniu poprawności.

Po przejściu sprawdzania poprawności przed wykonaniem tego odlewu należy użyć wartości "rzucanie przed typem", aby uzyskać wartość. Ponieważ nie jest on generowany dla twojego atrybutu, nie powiedzie się.

+0

Widzę ... cóż, to jest dobre wytłumaczenie ... czy istnieje dobre rozwiązanie? – tybro0103

Powiązane problemy