Doing Michael Hartl Rails Tutorial, aber ratlos auf Listing 5.28 (Getting RED Test anstelle von GRÜN), den Test zu ändern, um die neuen Routen anzupassen.Rails Tutorial statische Seiten routet Test rot (5.28)
Fehler für alle Seiten (/,/über,/Kontakt/Hilfe):
ActionController::UrlGenerationError: No route matches {:action=>"/*", :controller=>"static_pages"}
routes.rb
Rails.application.routes.draw do
root 'static_pages#home'
get '/help', to: 'static_pages#help'
get '/about', to: 'static_pages#about'
get '/contact', to: 'static_pages#contact'
end
Tests/controllers/static_pages_controller_test.rb
require 'test_helper'
class StaticPagesControllerTest < ActionController::TestCase
test "should get home" do
get root_path
assert_response :success
assert_select "title", "Ruby on Rails Tutorial Sample App"
end
test "should get help" do
get help_path
assert_response :success
assert_select "title", "Help | Ruby on Rails Tutorial Sample App"
end
test "should get about" do
get about_path
assert_response :success
assert_select "title", "About | Ruby on Rails Tutorial Sample App"
end
test "should get contact" do
get contact_path
assert_response :success
assert_select "title", "Contact | Ruby on Rails Tutorial Sample App"
end
end
static_pages_controller.rb
class StaticPagesController < ApplicationController
def home
end
def help
end
def about
end
def contact
end
end
Lassen Sie mich wissen, wenn Sie einen anderen Code sehen müssen! Habe versucht, nach jeder Route, wie folgt hinzuzufügen: '*', aber ohne Erfolg.
Nicht sicher, ob es ein Ruby/Rails Version Problem ist, aber ich verwende Rails 4.2.2 und Ruby 2.3.0 auf einer IDE, aber "Rails Test" (wie Hartl anweist zu verwenden) wird nicht funktionieren (tritt zurück "Testbefehl nicht gefunden"). Nicht sicher, ob das ein Hinweis auf ein größeres Problem ist oder nicht. Danke im Voraus!
EDIT: Links mit diesen Pfaden (wie unten) sind richtig dargestellt, es ist nur fehlgeschlagen die Tests.
<%= link_to "Home", root_path %>
<%= link_to "Help", help_path %>
Versionen war das Problem! In den früheren Kapiteln befand ich mich in einer älteren Ausgabe des Buches, in der ich aufgefordert wurde, die Beispiel-App mit 4.2.2 zu erstellen. Irgendwann wechselte er dann ein paar Kapitel später auf die neueste Version des Buches für 5.0.0. Ich bin mir nicht sicher, wie lange ich es überstanden habe, ohne es zu merken, aber ich habe die App von Grund auf neu gestartet (ich war sicher, dass ich in der 5.0.0-Ausgabe von Hartls Buch war). Jetzt funktioniert alles wie ein Zauber - auf jeden Fall eine wertvolle Lektion gelernt, um sicherzustellen, dass ich auf der richtigen Version bin ... und Edition! – user2521295