Rails rails-money undefined方法`美分'

时间:2016-11-22 10:11:00

标签: ruby-on-rails money-rails

我正在尝试实现money-rails,但我遇到了以下错误:

  

未定义的方法`美分' for" 1,000.00":String

我跟着this tutorial得到了一个"幻想"货币输入字段。

数据库架构:

t.integer  "balance_cents",    default: 0,     null: false
t.string   "balance_currency", default: "USD", null: false

型号:

monetize :balance_cents, as: :balance, allow_nil: :true, :numericality => { :greater_than_or_equal_to => 0}

def initialize(attributes = {})
  super
  @balance = attributes[:balance]
end

形式:

<%= form_for(@asset, url: assets_new_path) do |f| %>
  <%= f.label :balance, "Balance / Value ($)" %>
  <%= f.number_field :balance, data: { role: 'money', a_sep: ',', a_dec: '.' }, class: 'form-control' %>

控制器:

def create
  @asset = Asset.new(asset_params)
  if @asset.save
    flash[:success] = "New asset created successfully."
    redirect_to assets_path
  else
    ...
  end
end

def asset_params
  params.require(:asset).permit(:balance)
end

我应该设置:平衡输入字段另一种(更好)方式吗?

2 个答案:

答案 0 :(得分:1)

根据Rails Guidesafter_initialize回调中执行此操作的最佳方法。

答案 1 :(得分:0)

对您的列使用balance_satangs而不是balance_cents

相关问题