gpt4 book ai didi

ruby-on-rails - 如何有条件地避免 'nil can' t 被强制转换为 Integer' 错误

转载 作者:行者123 更新时间:2023-12-04 16:41:22 25 4
gpt4 key购买 nike

使用下面的代码,我在 Rails 中收到“nil can't be coerced into Integer”错误。

在我看来:

<%= account_totals %>

在 View 助手中:
def account_totals
if @user.accounts.any?
account_total = 0
@user.accounts.each do |account|
account_total += account.amount
end
account_total
end
end

这是因为用户没有与他们关联的帐户,所以 'account.percent' 为零。但是,我首先检查用户是否有任何帐户,因此如果他们没有任何帐户,则不应运行此代码。

总结用户帐户总金额的正确方法是什么?

最佳答案

因为有些account记录有nil金额,您可以将它们转换为 integer调用 to_i或 float to_f ,这里account.amount在某处返回零,这样做

account_total += account.amount.to_i

它将解决错误。但由于 amount是数字列,您最好在数据库级别的迁移中将默认值设置为 0。

或者,使用 sum
account_total = @user.accounts.sum(:amount)

它避免了 nil值并运行 SQL sum

关于ruby-on-rails - 如何有条件地避免 'nil can' t 被强制转换为 Integer' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60174238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com