我最近在我的rails 2.3.10應用程序上安裝了multi_db gem以便使用MySql主/從複製。Rails multi_db與事務
自從安裝了寶石,每次我在我的代碼中使用的交易時間,例如:
MyModel.connection.transaction do ...some code... end
我得到一個異常:NoMethodError undefined method 'assert_valid_keys' for true:TrueClass
如何與交易使用multi_db什麼想法?
編輯: iv'e發現一些有趣的事情,自從我已經安裝了multi_db
MyModel.connection.transaction do
test = 1+2
end
回報以下異常(在大多數情況下):NoMethodError undefined method 'assert_valid_keys' for true:TrueClass
,但如果我運行:
MyModel.connection.transaction({}) do
test = 1+2
end
一切運行順利。
我的腸道填充告訴我,multi_db(這是基於受虐狂寶石)不會「與我正在使用的其他寶石之一」(可能:deadlock_retry或ar-extensions)「玩得很好」。
有什麼想法?
因爲assert_valid_keys是在哈希上定義的,我猜你在代碼中做錯了什麼。這可能有助於在這裏張貼片段 – phoet 2011-12-22 14:34:09
iv'e發現一些有趣的事情,自從我已經安裝了multi_db MyModel.connection.transaction做 測試= 1 + 2 結束 回報以下異常(在大多數情況下): 'NoMethodError未定義的方法 'assert_valid_keys' 爲真:TrueClass' 但如果我運行: MyModel.connection.transaction({})做 測試= 1 + 2 端 一切順利。 我的腸道填充告訴我,multi_db(它是基於受虐狂寶石)不會「與我正在使用的其他寶石之一」(可能是:deadlock_retry或ar-extensions)「玩得很好」。 有什麼想法? – Ran 2011-12-23 18:23:58
以下是來自重複問題的堆棧跟蹤,以供參考:http://pastie.org/3063822 – rkb 2011-12-24 19:26:25