authlogic flash[:note] не отображается на шаге webrat огурца

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

 Scenario: log in
Given a registered user: "test@test.com" with password: "p@ssword" exists
And I am on the homepage
When I follow "Log in"
And I fill in "Username" with "test@test.com"
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!"

мой шаг огурца не удается, но только в вебрат. Я отладил с помощью 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/issuesearch?state=open&q=cucumber+flash и не понимал, как это могло бы помочь мне, и это также не помогло

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

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

*** LOCAL GEMS ***

actionmailer (2.3.8)

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

activerecord (2.3.8)

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

Активная поддержка (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)

термин-анзиколор (1.0.5)

thinkbot-factory_girl (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

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

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

4 ответа

Решение

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

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

Вместо линии

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

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

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

при этом, кажется, вспоминают вспышку [:note]

я не смог получить -> redirect_to root_url,:flash => {: alert => 'not found' },:note => Войти успешно!' <- работать вообще

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

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

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

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

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

Другие вопросы по тегам