Rails проверяет виртуальные атрибуты - PullRequest
6 голосов
/ 12 октября 2010

У этой модели:

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

Всякий раз, когда я отправляю форму для создания этой модели, я получаю следующую ошибку:

неопределенный метод `number_before_type_cast 'для #

Ответы [ 2 ]

2 голосов
/ 12 октября 2010

Я исправил проблему, добавив этот метод в мою модель кролика:

def number_before_type_cast
    number
end

Мне это не нравится, но я полагаю, что оно будет работать, пока кто-нибудь не отправит лучшее решение.

1 голос
/ 12 октября 2010

Rails генерирует FIELDNAME_before_type_cast в модели для каждого поля. Он сохраняет значение из формы в виде строки до того, как его преобразуют (приводят) в этом случае в число (например, это может быть дата). Это приведение происходит до сохранения, но после проверки.

Таким образом, когда проверка выполняется до того, как выполняется приведение, она должна использовать значение «перед преобразованием типа», чтобы получить это значение. Поскольку это не сгенерировано для вашего атрибута, произойдет сбой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...