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... который безумно работает сейчас...
Вместо линии
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 и сеанса в одном запросе. Смотрите этот билет для деталей.
В то же время вы можете использовать эту суть в качестве временного исправления.