3

在我的控制器中,使用以下代码完成重定向:

会话控制器

def create
  render js: "window.location.pathname = #{home_path.to_json}"
end

login但是,当我运行 capybara 时,提交发生后它不会进入 home_page :

describe "Login Test", :js => true do
  before do
    @user = FactoryGirl.create(:user)
  end
  it 'should show the users first name' do
    visit login_path
    fill_in 'email', with: @user.email
    fill_in 'password', with: @user.password
    click_button "Log In"
    save_and_open_page
    assert page.has_content? @user.first_name
  end
end

当我通过添加launchy gem并运行进行故障排除时,save_and_open_page我得到一个包含以下文本的页面: window.location.pathname = "/"

Capybara 给我以下错误: Capybara::ElementNotFound: Unable to find xpath "/html"

似乎水豚永远不会通过登录按钮。

4

1 回答 1

0

你试过这个吗?

respond_to do |format|
  format.js { render :js => 'window.location.href = "#{home_path.to_json}"' }
end
于 2013-03-08T01:15:39.323 回答