2
我正在为会话控制器在rails中进行一些集成测试,并且在测试中我发现我的login_path
未定义,即使它在routes.rb
文件中定义,并且当我调用它也显示在控制台中的路径。任何想法是什么造成这个?未定义的本地变量或方法`login_path'
的routes.rb:
Rails.application.routes.draw do
get 'sessions/new'
root 'static_pages#home'
get 'help' => 'static_pages#help'
get 'about' => 'static_pages#about'
get 'contact' => 'static_pages#contact'
get 'signup' => 'users#new'
get 'login' => 'sessions#new'
post 'login' => 'sessions#create'
delete 'logout' => 'sessions#destroy'
resources :users
end
测试:
require 'test_helper'
class UsersLoginTest < ActionDispatch::IntegrationTest
get login_path
assert_template 'sessions/new'
post login_path, session: { email: "", password: "" }
assert_template 'sessions/new'
assert_not flash.empty?
get root_path
assert flash.empty?
end
尝试'耙routes'列出所有可用的路线在Rails项目 – MrYoshiji 2015-03-02 18:24:32
它的存在,这就是为什么错误是没有意义的我。 – 8vius 2015-03-02 18:40:00