後的主鍵,我不是很確定問題所在,但是當試圖創建一個(通用)玩笑(模型)我得到以下錯誤:的Rails似乎沒有隨機部署
ActiveRecord::RecordNotUnique (Mysql2::Error: Duplicate entry '2147483647' for key 'PRIMARY': INSERT INTO `jokes` (`content`, `created_at`, `id`, `rating`, `updated_at`) VALUES ('dsfgdsfgdfgd', '2013-02-27 16:33:12', 90650754896700, 0, '2013-02-27 16:33:12')):
app/controllers/jokes_controller.rb:141:in `create'
app/controllers/jokes_controller.rb:140:in `create'
當我試圖挽救另一個問題:
ActiveRecord::RecordNotUnique (Mysql2::Error: Duplicate entry '2147483647' for key 'PRIMARY': INSERT INTO `jokes` (`content`, `created_at`, `id`, `rating`, `updated_at`) VALUES ('dsfgdsfg', '2013-02-27 16:32:23', 29733688655250, 0, '2013-02-27 16:32:23')):
app/controllers/jokes_controller.rb:141:in `create'
app/controllers/jokes_controller.rb:140:in `create'
的錯誤中提到,我有一個重複的條目(主鍵2147483647)。我只能創造一個笑話。在部署之前,我從來沒有遇到過這個問題,我能想到的唯一值得注意的事情是數據庫類型,從sqlite3到mysql2。
這裏是重要的碼位從我的笑話型號:
before_create :randomize_id
#...
validates :content, :presence => true
validates :content, :uniqueness => true
#...
private
def randomize_id
begin
self.id = SecureRandom.random_number(100_000_000_000_000)
end while Joke.where(:id => self.id).exists?
end
你爲什麼要這麼做? – 2013-02-27 16:51:59