Ruby Rspec请求规范寻找单一命名控制器
我定义了以下路由和以下UsersController,当我尝试在{visit signup_path}之前运行spec test尝试,我得到以下错误: 错误Ruby Rspec请求规范寻找单一命名控制器,ruby,ruby-on-rails-3,routing,Ruby,Ruby On Rails 3,Routing,我定义了以下路由和以下UsersController,当我尝试在{visit signup_path}之前运行spec test尝试,我得到以下错误: 错误 Failure/Error: before { visit signup_path} ActionController::RoutingError: uninitialized constant UserController # ./spec/requests/user_pages_spec.rb:7:in
Failure/Error: before { visit signup_path}
ActionController::RoutingError:
uninitialized constant UserController
# ./spec/requests/user_pages_spec.rb:7:in `block (3 levels) in <top (required)>'
resources :users
用户\u控制器.rb
resources :users
match '/signup', to: 'users#new'
match '/help', to: 'static_pages#help'
root :to => 'static_pages#help'
class UsersController < ApplicationController
def new
end
def show
@user = User.find(params[:id])
end
end
以下是我的路线:
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
signup /signup(.:format) users#new
help /help(.:format) static_pages#help
root / static_pages#help
我可以毫无疑问地访问www.blah.com/signup。但是规范正在寻找一个单一的用户控制器。我还可以用“/users/new”替换“signup\u path”,测试就会通过
另外,我还想补充一点,最初我使用rails生成器(使用单一版本)创建了控制器。但当我发现使用rails destroy controller脚本时,我放弃了它。然后为复数版本发布了正确的rails生成器。就像我说的,测试好像搞砸了,但是实际的应用程序。你的
描述的块在你的规范中是什么样子的?您没有指定类似于descripe UserController
的内容,是吗?我已经添加了完整的descripe块。我没有任何硬编码。我确实添加了关于首先生成单一版本的附加注释(参见注释)。我还使用了Guard/Spork,在编辑spec_helper.rb文件强制重新加载Spork之后,测试现在通过了。有人能解释为什么会这样吗?
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
signup /signup(.:format) users#new
help /help(.:format) static_pages#help
root / static_pages#help