尝试使用Capybara,Cucumber,RSpec和Devise登录时重定向到example.com

时间:2013-06-04 12:52:27

标签: ruby-on-rails devise cucumber capybara

尝试使用Cucumber和Devise传递一个非常简单的场景 - 用户签名...(EPIC FAIL)

我有一个这样的步骤:

user = create(user_sym)
user.confirm!

visit new_user_session_path
fill_in 'Email',:with => user.email
fill_in 'Password',:with => attributes_for(user_sym)[:password]
click_button 'Sign in'
page.should have_content('Sign out')

日志显示我一切都很好(确认发送电子邮件,UPDATE插入正确的确认标志),然后我看到重定向到

www.example.com

此处和其他地方的很多帖子都提到了这一点,并使用login_user:callback =>是的,以使其工作,但我想使用“访问”。

造成这种情况的原因。实际错误是失败的TEST,即退出文本没有出现。正在呈现的是Rails主页,即

 expected there to be text "Sign out" in "Browse the documentation Rails Guides Rails API Ruby core Ruby standard library Welcome aboard

我无法弄清楚堆栈的哪一部分正在抛出这个(因为我很新!)。据推测,Capybara正在重定向?我已经看到人们认为这是可行的,并且在我的开发堆栈中,它可以清楚地重定向到用户索引页面,如你所料。

任何光都非常赞赏。

1 个答案:

答案 0 :(得分:1)

我通过在ApplicationController

中的after_sign_in_path_for中返回特定路径来修复此问题
  def after_sign_in_path_for(resource)
    xxxxx_path
  end

黄瓜测试中的根路径被重定向到“example.com”