Как инициализировать столбец Money с нулевой суммой в Active Model? - PullRequest
1 голос
/ 13 сентября 2010

У меня есть новое приложение (Rails 2.3.8), которое использует много полей для денег. Я использую гем денег (3.0.5) и плагин act_as_money. Я написал несколько примеров моделей rspec, и там вроде все работает нормально.

Моя проблема заключается в определении форм для новых и редактирования. Как и в предыдущих проектах для сложных макетов, я извлек базовую форму в часть и включил ее в новые и редактируемые представления.

Тем не менее, объект модели создается и оставляется с пустыми значениями в полях, что приводит к тому, что денежный драгоценный камень выдает сообщение: «неопределенный метод` subunit_to_unit 'для nil: NilClass ».

Я подумал, что мог бы использовать что-то вроде after_initialize(), чтобы подключиться к созданию нового объекта в Rails и установить все атрибуты money на ноль, но это не сработало (и несколько постов рекомендовано против этого по соображениям производительности) ...

Есть ли какие-либо предложения по чистому способу зацепления моего модельного объекта и проверки наличия нулей для всех денежных значений?

1 Ответ

1 голос
/ 14 сентября 2010

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
...