Я Я использую Rails 3.1.0.rc4, и я работаю над интеграционными тестами с новыми Steak-подобными DSL и Rspec от capybara (с использованием аутентификации Devise)
Проблема, с которой я сталкиваюсь, заключается в том, что когда я запускаю интеграционный тест, Драйвер-тестер от Capybara кажется просто полностью потерять сеанс пользователя, вошедшего в систему, фактически, сеанс, кажется, просто полностью очищается.
После нескольких дней отладки я совершенно не понимаю, почему. Пройдя построчно через стек промежуточного программного обеспечения, я полагаю, что я решил, что проблема сводится к тому, что происходит в ActiveRecord :: SessionStore
, что вызывает это. Я прочитал здесь , что Rails очистит сеанс, если он не может проверить токен CSRF, что заставляет меня думать, что у меня что-то настроено неправильно, и по какой-то причине этот тест является некорректная аутентификация токена CSRF.
Это то, что находится в моем session_store.rb в каталоге / initializers:
MyApp::Application.config.session_store :active_record_store
Кто-нибудь, кто знает о защите CSRF в рельсах, может узнать, почему это может происходить?
Кроме того, вот некоторые вещи, на которые следует обратить внимание:
Может ли кто-нибудь дать мне какие-либо сведения о том, что именно здесь происходит, и почему один тест, кажется, просто произвольно отбрасывает свои сеанс и не справиться со мной? Я провел много отладки и перепробовал все, что мог придумать.