2012-01-31 56 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。 这会让你免受许多麻烦。