我尝试使用以下代码。我收到“无法将nil强制转换为BigDecimal”的错误消息。任何人都可以帮助我。谢谢。
迁移文件
class AddPaidAmountToVoucher < ActiveRecord::Migration
def self.up
add_column :vouchers, :paid_amount, :decimal, :precision => 18, :scale => 2
end
def self.down
remove_column :vouchers, :paid_amount
end
end
模型类(voucher_payment.rb)
after_update :update_voucher_paid_amount
def update_voucher_paid_amount
voucher = self.voucher
paidAmount = 0
voucher.voucher_payments.each do |voucher_payment|
paidAmount += voucher_payment.paid_amount if voucher_payment.is_approved == true
end
voucher.paid_amount = paidAmount
voucher.save
end
在循环通过voucher.voucher_payments一个/某些voucher_payment时,payed_amount为零。
voucher_payment.paid_amount = nil
因此,当您将paidAmount添加到nil值时,就会出现此错误。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。