Как инициализировать столбец Money с нулевой суммой в Active Model?
У меня есть новое приложение (Rails 2.3.8), которое использует много полей для денег. Я использую гем денег (3.0.5) и плагин act_as_money. Я написал несколько примеров моделей rspec, и, похоже, все работает нормально.
Моя проблема в определении форм для новых и редактирования. Как и в предыдущих проектах для сложных макетов, я извлек базовую форму в часть и включил ее в новые и редактируемые представления.
Тем не менее, объект модели создается и остается с пустыми значениями в полях, что приводит к тому, что денежный драгоценный камень выдает жалобу: "неопределенный метод`subunit_to_unit'для nil:NilClass".
Я думал, что мог бы использовать что-то вроде after_initialize()
подключиться к созданию нового объекта в Rails и установить все атрибуты money на ноль, но это не сработало (и несколько сообщений рекомендовано для этого по соображениям производительности)...
Какие-нибудь предложения по чистому способу зацепить мой модельный объект и убедиться, что у него есть нули для всех денежных значений?
1 ответ
after_initialize не делает то, что вы думаете, делает
способ подключиться к init таков:
class MyModel < ActiveRecord::Base
def initialize(*args, &block)
super # no () form is equivalent to super(*args, &block)
set_defaults
end
private
def set_defaults
# Do your defaults here
end
end