authlogic flash [: notice] не отображается на шаге cucumber webrat

Я выполняю шаги BDD с огурцом, чтобы реализовать свое поведение при автоматическом входе в систему.

 Scenario: log in
Given a registered user: "[email protected]" with password: "p@ssword" exists
And I am on the homepage
When I follow "Log in"
And I fill in "Username" with "[email protected]"
And I fill in "Password" with "p@ssword"
And I open the page
And I press "Login"
And I open the page
Then I should see "Login successful!"
And I should see "Logout"

это мой сценарий и когда я ударил

Then I should see "Login successful!"

мой шаг огурца не удался, но только в webrat. Я отлаживал с помощью launchy, и когда появляется веб-страница, действительно нет сообщения, но в режиме разработки, когда я запускаю скрипт / сервер, я вижу свои сообщения. Мой контроллер выглядит так

 def create
@user_session = UserSession.new(params[:user_session])
  if @user_session.save
    flash[:notice] = "Login successful!"
   redirect_to root_url
  else
    render :action => 'new'
  end

конец

И да, я видел этот http://github.com/binarylogic/authlogic/issintagearch?state=open&q=cucumber+flash#issue/142 и не понимал, как это может мне помочь, и это тоже не помогло

Rails / Cucumber / Webrat: redirect_to, flash [: notice] не работает < / а>

моя установка

*** LOCAL GEMS ***

Actionmailer (2.3.8)

пакет действий (2.3.8)

активная запись (2.3.8)

активный ресурс (2.3.8)

activesupport (2.3.8)

аутентичный (2.1.5)

строитель (2.1.2)

конфигурация (1.1.0)

огурец (0.8.4, 0.8.3)

огуречные рельсы (0.3.2)

database_cleaner (0.5.2)

декларативная_авторизация (0.4.1)

diff-lcs (1.1.2)

корнишон (2.1.2, 2.0.2)

json_pure (1.4.3)

запуск (0.3.5)

MySQL (2.8.1)

нокогири (1.4.2)

скрепка (2.3.3)

рассол (0.3.0)

стойка (1.2.1, 1.1.0)

стэк-тест (0.5.4)

рельсы (2.3.8)

грабли (0.8.7)

rspec (1.3.0)

rspec-рельсы (1.3.2)

синтаксис (1.0.0)

термин-ansicolor (1.0.5)

мыслибот-фабрика_девушка (1.2.2)

троллоп (1.16.2)

вебрат (0.7.1)

ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux] gem 1.3.7, работающий на Ubuntu

Что я могу сделать, чтобы мои огуречные шаги прошли?

Спасибо за любую помощь


person server info    schedule 13.07.2010    source источник


Ответы (4)


вместо строки

flash[:notice] = "Login successful!"   
redirect_to root_url

просто попробуйте отрендерить его, а не перенаправить.

flash[:notice] = "Login successful!"   
render :action => :root_url

при этом он, кажется, запоминает flash [: notice]

я не смог получить -> redirect_to root_url,: flash => {: notice => 'not found'},: notice => Успешный вход! ' ‹- работать вообще

person dfear    schedule 18.01.2011

Похоже, в rails 2.3.8 изменился способ отображения уведомлений ..

redirect_to(root_url, :notice => 'Login successful!')

может быть то, что вы ищете.

person Rabbott    schedule 13.07.2010
comment
Спасибо, но это не помогло, похоже, что это всего лишь комбинация двух шагов = (На мой взгляд, проблема заключается в том, как webrat обрабатывает перенаправления и флеш-сообщение - person server info; 14.07.2010

Я считаю, что эта проблема будет исправлена ​​в Rails 2.3.9. Это связано с настройкой файла cookie и сеанса в одном запросе. См. этот билет, чтобы узнать подробности.

А пока вы можете использовать эту суть в качестве временного исправления.

person ryanb    schedule 14.07.2010
comment
спасибо за ответ, но я не понял суть. Я добавил config.after_initialize do ActionController :: Dispatcher.middleware.insert_before (ActionController :: Base.session_store, RackRailsCookieHeaderHack) end this в свой environment.rb и создал еще один файл с именем rails_cookie_header_hack.rb и поместил его в папку config. Я получаю ... Я получаю неинициализированную константу RackRailsCookieHeaderHack ... какой-нибудь указатель? Но спасибо за помощь =) - person server info; 15.07.2010

спасибо Райнбу, который указал мне правильное направление. Но, безусловно, это решение не сработало, но я нашел эту страницу, которая помещает все в cucumber.rb ... что злило его сейчас ...

https://webrat.lighthouseapp.com/projects/10503-webrat/tickets/383-reset_session-and-webrat-dont-play-nicely-with-one-another

person server info    schedule 18.07.2010