2012-01-31 120 views
0

因此,我正在構建一個涉及在頁面上提交表單的集成。但出於某種原因,數據庫連接在發佈請求期間中斷?或者服務器沒有訪問相同的數據庫?水豚發佈請求問題

發生什麼事情是我爲社區獲得一個頁面,但是當我在頁面上提交表單時,處理該帖子的控制器不知道該社區。

我已經嘗試關閉protection_from_forgery了。連接似乎是相同的(根據AR:Base.connection)。

我正在使用集成capybara + rspec的共享連接池方法。

(ActiveRecord的:: Base.shared_connection = ActiveRecord的:: Base.connection)

我使用的Rails 3.0.11,rspec的2.6.4,水豚(1.0.0),和水豚-webkit的(0.8 .0)。

回答

0

確保設置

RSpec.configure do |config| 
    config.use_transactional_fixtures = false 
    end 

因爲水豚測試經過一個單獨的數據庫連接。

+0

我實際上試圖通過要求它通過相同的連接來避免這種情況。 – HaloZero 2012-02-01 00:37:00

+0

好的,有沒有辦法來驗證shared_connection正在工作?你可以取出shared_connection並使用transactional_fixtures = false來查看問題是否消失? – 2012-02-01 04:26:45

0

實際上存在共享連接黑客的問題。例如,如果你使用gem mysql2,你會看到一些類似的錯誤:

Mysql2::Error This connection is still waiting for a result 

請用這個代替。它是由邁克佩勒姆寫的,所有信用給他。您需要安裝寶石connection_pool。 這會讓你免受許多麻煩。