Dee*_*kor 6 heroku ruby-on-rails-3
我收到了一个奇怪的错误.我的应用程序在我的本地主机上运行完全正常,但在我的Heroku服务器上它给出了这个错误:TypeError (String can't be coerced into Fixnum):
这是我的代码:
@rep = rep_score(@u)
Run Code Online (Sandbox Code Playgroud)
根据日志,这是抛出错误的线.我已将其评论出来,并将更改推送到Heroku,应用程序现在运行正常.
这是rep_score方法:
def rep_score(user)
rep = 0
user.badges.each do |b|
rep = rep + b.rep_bonus
end
return rep
end
Run Code Online (Sandbox Code Playgroud)
也是rep_bonus数据库中的整数.
再次,这在localhost上运行得非常好.让我知道你的想法.
return从rep_score方法中删除后,它工作正常.我还是Ruby新手,推出有什么问题return吗?这是其他语言的习惯.
小智 10
Ruby +用作字符串和数学情境的组合工具.
简单修复:
def rep_score(user)
rep = 0
user.badges.each do |b|
rep = rep + b.rep_bonus.to_i
end
return rep
end
Run Code Online (Sandbox Code Playgroud)
to_i正在改变rep_bonus,可能是从数据库模型,从字符串结果变为整数.您可以设置几种不同的类型转换.仅举几例转换:
to_ato_fto_ito_s