6
我收到一個奇怪的錯誤。我的應用程序運行在我的本地完全正常的,但我的Heroku的服務器上它給這個錯誤:TypeError (String can't be coerced into Fixnum):
TypeError(字符串不能強制轉換爲Fixnum)?
這裏是我的代碼:
@rep = rep_score(@u)
根據這行引發錯誤日誌。我已經發表了評論,並將更改推向Heroku,現在應用運行良好。
這裏是rep_score
方法:
def rep_score(user)
rep = 0
user.badges.each do |b|
rep = rep + b.rep_bonus
end
return rep
end
另外rep_bonus
是數據庫中的一個整數。
再次,本地主機上運行得很好。讓我知道你的想法。
從rep_score
方法去除return
後,它的正常工作。我對Ruby還是個新手,把return
放在哪裏有什麼問題?這是其他語言的習慣。
爲什麼我需要強制轉換的東西時,他們都是整數?這並沒有回答爲什麼它在本地主機上工作。 – Deekor 2012-07-18 15:56:26
爲什麼是一個普遍的問題。我沒有確切的答案,但它解決了這個問題。我發現從我的數據庫中取出的整數並不總是被設置爲正確的類型。無論問題出在我的數據庫(我使用MySQL)上,我都不關心如何找到簡單的類型轉換來解決整個問題。 本地主機和生產是一個完全不同的環境。可能有數百萬的可能性。 Ruby版本不同,gem ports不一樣,平臺不同,數據庫版本不一樣......這個列表繼續下去,我還剩下40個字符來回答。 – CrazyVipa 2012-07-18 16:37:49
如果你閱讀我的編輯,你可以看到我解決它之前,你回答這個問題擺脫'返回'。是否有返回導致錯誤的原因? – Deekor 2012-07-18 23:41:11