Je suis confronté à mon premier RoR tutorial et j'ai rencontré une erreur de routage du contrôleur d'action. J'ai vérifié mon code au moins 8 fois, mais je n'arrive pas à comprendre le problème. Je suis sûr que cela se reproduira à l'avenir. Ma question est, en général, comment devrais-je résoudre ces erreurs? Si c'est pertinent, j'utilise RVM, Rails 3.0.1 et Ruby 1.9.2.Recherche des erreurs de routage dans les rails
Pour référence à ce que je traite actuellement, voici quelques-uns des fichiers:
pages_controller.rb
class PagesController < ApplicationController
def home
@title = "Home"
end
def contact
@title = "Contact"
end
def about
@title = "About"
end
def help
@title = "Help"
end
end
layout_links_spec.rb
require 'spec_helper'
describe "LayoutLinks" do
it "should have a Home page at '/'" do
get '/'
response.should have_selector('title', :content => "Home")
end
it "should have a Contact page at '/contact'" do
get '/contact'
response.should have_selector('title', :content => "Contact")
end
it "should have an About page at '/about'" do
get '/about'
response.should have_selector('title', :content => "About")
end
it "should have a Help page at '/help'" do
get '/help'
response.should have_selector('title', :content => "Help")
end
end
routes.rb
SampleApp::Application.routes.draw do
match '/contact', :to => 'pages#contact'
match '/about', :to => 'pages#about'
match '/help', :to => 'pages#help'
root :to => 'pages#home'
end
Sortie Terminal
Started GET "/pages/home" for 127.0.0.1 at 2010-10-21 06:51:01 -0400
ActionController::RoutingError (No route matches "/pages/home"):
Rendered /Users/zak/.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.0.1/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (0.8ms)
a également couru rake routes
et obtenu
ZKidds-MacBook-Pro:sample_app zak$ rake routes
(in /Users/zak/rails_projects/sample_app)
contact /contact(.:format) {:controller=>"pages", :action=>"contact"}
about /about(.:format) {:controller=>"pages", :action=>"about"}
help /help(.:format) {:controller=>"pages", :action=>"help"}
home /home(.:format) {:controller=>"pages", :action=>"home"}
J'ai fait ce changement dans le layout_links_spec.fichier rb: require 'spec_helper' décrivent "LayoutLinks" faire il "devrait avoir une page d'accueil à '/ home'" faire get '/ home' response.should have_selector ('title',: content = > "Home") fin Et mon pages_controller.rb a: classe PagesController
zkidd
votre test dans le commentaire correspond maintenant à votre 'râteau sortie routes'. Mais les deux ne correspondent pas à 'routes.rb' ** dans la question **. Où est votre correspondance pour '/ home'? – Matt