如何在活动模型中初始化零金额的Money列?

时间:2010-09-13 15:01:19

标签: ruby-on-rails currency

我有一个使用大量金钱领域的新应用程序(Rails 2.3.8)。我正在使用money gem(3.0.5)和acts_as_money插件。我写了一些rspec模型示例,一切似乎都在那里工作正常。

我的问题在于定义新的& amp;编辑。正如我在过去的复杂布局项目中所做的那样,我将基本表单提取为部分表格并将其包含在新的&编辑视图。

但是,模型对象被创建并在字段中留有空值,并导致money gem抱怨:“未定义的方法`subunit_to_unit'为nil:NilClass”。

我以为我可以使用像after_initialize()这样的东西来挂钩在Rails中创建一个新对象并将所有的钱属性设置为零,但这不起作用(并且建议针对性能的几个帖子原因)...

关于一个干净的方法来挂钩我的模型对象并确保所有货币值都为零的任何建议?

1 个答案:

答案 0 :(得分: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