比賽我有我的規格測試的錯誤,我不知道如何解決它:::的ActionView ::模板錯誤:沒有路線rspec的
An error occurred in an after hook
ActionView::Template::Error: No route matches {:controller=>"users", :action=>"show", :name=>#<User id: 1, email: "[email protected]", encrypted_password: "$2a$04$z8LP2/rW7vhP9lYQ2bSrCeZ5ASYG2O8XUgRwI3/1R2aJ...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 1, current_sign_in_at: "2013-05-01 17:21:03", last_sign_in_at: "2013-05-01 17:21:03", current_sign_in_ip: "127.0.0.1", last_sign_in_ip: "127.0.0.1", created_at: "2013-05-01 17:20:59", updated_at: "2013-05-01 17:21:03", name: nil, role: "user">}
occurred at /Users/ejiqpep/.rvm/gems/ruby-1.9.3-p327/gems/actionpack-3.2.12/lib/action_dispatch/routing/route_set.rb:533:in `raise_routing_error'
我的測試是:
before(:each) do
user = FactoryGirl.create(:user)
login_as(user, :scope => :user)
end
it "shouldn't allow user to delete last ingredient field", :js => true do
visit new_recipe_path
current_path.should == new_recipe_path
click_link('Remove')
page.should have_css('.ingredients-form')
end
問題出在我的佈局頁面上。當我評論這條線時,所有的作品。但我自己可以單擊該鏈接並僅在測試中出現錯誤。
= link_to current_user.email, current_user, :class => 'btn'
users_controller.rb
class UsersController < ApplicationController
def show
@user = User.find_by_name(params[:id])
end
end
的routes.rb
EcookRails::Application.routes.draw do
devise_for :users
devise_scope :user do
get '/login' => 'devise/sessions#new'
post '/login' => 'devise/sessions#create'
get '/logout' => 'devise/sessions#destroy'
get '/register' => 'devise/registrations#new'
end
resources :recipes
resources :users
match 'favorites/:recipe_id' => 'favorites#create', :as => :favorite
root :to => 'recipes#index'
end
我認爲這個問題可以在我的RSpec用戶loggining。我使用Devise方法授權水豚。
我耙路輸出:
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
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
login GET /login(.:format) devise/sessions#new
POST /login(.:format) devise/sessions#create
logout GET /logout(.:format) devise/sessions#destroy
register GET /register(.:format) devise/registrations#new
recipes GET /recipes(.:format) recipes#index
POST /recipes(.:format) recipes#create
new_recipe GET /recipes/new(.:format) recipes#new
edit_recipe GET /recipes/:id/edit(.:format) recipes#edit
recipe GET /recipes/:id(.:format) recipes#show
PUT /recipes/:id(.:format) recipes#update
DELETE /recipes/:id(.:format) recipes#destroy
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
favorite /favorites/:recipe_id(.:format) favorites#create
root / recipes#index
我們可以看到您的路線文件嗎? – Deekor 2013-05-01 18:16:21
我已添加routes.rb – user220989 2013-05-01 18:30:27
在您測試中,您是否登錄了用戶?否則,如果在您的應用程序中爲了訪問該鏈接而需要登錄,則無法找到該路線。 – PericlesTheo 2013-05-01 18:33:09