這使我瘋了..我用過調試器,我已經重新啓動了我的電腦,mysql服務器,控制檯,終端,一切......爲什麼錯誤的值被存儲在數據庫中?爲什麼將錯誤的值保存到數據庫中?拉出毛髮
下面是寫行..這之前也有一些制定者..
msg.contentID = twt.attrs["id_str"]
msg.save
下面是調試器輸出:
SQL (0.4ms) INSERT INTO `messages` (`content`, `contentID`, `created_at`, `reply_to`, `sender_tid`, `updated_at`, `user_id`) VALUES (NULL, 84756616506912768, '2012-01-27 00:01:58', 'ZachACole', 115192457, '2012-01-27 00:01:58', 32)
(0.5ms) COMMIT
我立刻在數據庫中檢查值contentID應該是'84756616506912768'..並且它不是..這是一個不同的值,但它的每次都有相同的不同值...我的消息模型沒有對其進行驗證..正如您在此處看到的那樣:
class Message < ActiveRecord::Base
belongs_to :user
scope :tweet, order("contentID desc")
end
我該如何調試?
============
更新:我每次得到的值是:2147483647
這是一個非常大的數字。總是插入的值是什麼?我猜是有什麼事情發生,因爲保存該數字所需的大小遠大於列類型的大小。什麼是列類型? – MrDanA 2012-01-27 00:10:16
您對數據庫中的字段有任何驗證嗎?你每次得到的'同樣的價值'是什麼? – sscirrus 2012-01-27 00:10:26
@sscirrus我沒有對數據庫進行任何驗證,正如您從描述中的消息模型中所看到的那樣... – Inc1982 2012-01-27 00:13:22