确定rails 3中的命名资源/路径

时间:2012-09-11 15:24:08

标签: ruby-on-rails-3 tdd capybara bdd

我是rails的新手,我正在使用Capybara和cucumber编写一些测试。

Scenario: Successful login
  Given a user "admin@adm.com" with password "admin123"
  And I am on the sign in page

Given /^I am on the sign in page$/ do |page_name|
  visit('/users/sign_in')
  save_and_open_page
end

我无法找到一种方法来编写命名路径而不是'/ users / sign_in'网址。

我怎么能搞清楚?

1 个答案:

答案 0 :(得分:1)

这样做的方法是,

转到项目根目录并运行

rake routes

这将给出rails所处理的所有请求的列表,如下所示:

new_user_session GET    /users/sign_in(.:format)        devise/sessions#new
    user_session POST   /users/sign_in(.:format)        devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format)       devise/sessions#destroy

所以看看上面的第一列,我们看到了“new_user_session”

这可以写成new_user_session_path并放在visit()中:

visit(new_user_session_path)

并且(据我所知)它的工作正常:)