2012-03-05 23 views
1

使用Rails 3.1.1,我在生產中偶然出現錯誤,因爲某些原因,mysql查詢中的綁定參數似乎不存在。該錯誤看起來像這樣:在Rails中綁定參數mySQL空

A ActiveRecord::StatementInvalid occurred in events#show: 

Mysql::Error: : SELECT `events`.* FROM `events` WHERE `events`.`id` = ? LIMIT 1 
activerecord (3.1.1) lib/active_record/connection_adapters/mysql_adapter.rb:890:in `execute 

這是不一致的任何插入或選擇,所以我遇到了麻煩跟蹤它。有人有任何建議嗎?

編輯:更新更簡單的例子。

#events_controller.rb 
def show 
    @event = Event.find(params[:id]) 

    ... 
end 

#called with parameters: {"action"=>"show", "controller"=>"events", "id"=>"26"} 
+0

您可以發佈用於生成'view_ips'表,'app/models/view_ip.rb'文件內容和'videos#viewed'操作的遷移嗎?這些將使我們能夠幫助你。 – 2012-03-10 18:49:47

+2

您可以嘗試向模型對象添加驗證,以在問題到達數據庫之前將其陷入困境。我的猜測是,這實際上並不是MySQL相關的問題。 – GSnyder 2012-03-11 01:49:13

+0

這是用於創建'ViewIp'的代碼,您在多少個地方執行該操作?向我們展示代碼。將日誌記錄添加到代碼中,以便知道哪個實際方法/條目會導致nil值。然後檢查哪裏可以成爲零。祝你好運。 – nathanvda 2012-03-12 22:39:19

回答

0

在升級到最新的rails之後,這似乎已經消失了 - 它不知道它是什麼。

0

The probable reason

檢查數據庫驅動程序的安裝here

+0

不安裝mysql gem從源代碼構建驅動程序? – pschuegr 2012-03-14 18:03:19

+0

不知道是否http://stackoverflow.com/questions/8610426/rails-3-1-mysql2-error-mysql-server-has-gone-away可以幫助你。 – asitmoharna 2012-03-14 18:35:16