Ich arbeite an Michael Hartl Tutorial auf Railstutorial.org. Ich habe Schwierigkeiten in Kapitel 5 mit dem Routing zu arbeiten. Wenn ich mit einem Routen-DateiSchienen Routing Syntax Fehler
routes.rb
Rails.application.routes.draw do
root 'static_pages#home'
get 'static_pages/help'
get 'static_pages/about'
get 'static_pages/contact'
für jede dieser gibt es einen Test wie
static_pages_controller_test.rb
test "should get home" do
get :home
assert_response :success
assert_select "title", "Ruby on Rails Tutorial Sample App"
end
diese Syntax funktioniert und alle Tests bestanden beginnen, aber später will er die Syntax ändern mit Hilfe der * _Pfadkonvention.
so jetzt die Tests aussehen
class StaticPagesControllerTest < ActionController::TestCase
test "should get home" do
get root_path
.
.
end
test "should get help" do
get help_path
.
.
end
und ich die Routen zu
root 'static_pages#home'
get '/help', to: 'static_pages#help'
get '/about', to: 'static_pages#about'
get '/contact', to: 'static_pages#contact'
aktualisiert, aber jetzt alle die Tests fehlschlagen mit den Nachrichten
ERROR["test_should_get_home", StaticPagesControllerTest, 2016-06-30 05:02:41 -0700]
test_should_get_home#StaticPagesControllerTest (1467288161.43s)
ActionController::UrlGenerationError: ActionController::UrlGenerationError:
No route matches {:action=>"/", :controller=>"static_pages"}
ERROR["test_should_get_help", StaticPagesControllerTest, 2016-06-30 05:02:41 -0700]
test_should_get_help#StaticPagesControllerTest (1467288161.43s)
ActionController::UrlGenerationError: ActionController::UrlGenerationError:
No route matches {:action=>"/help", :controller=>"static_pages"}
mein Controller etwas aussieht wie diese
class StaticPagesController < ApplicationController
def home
end
def help
end
.
.
end
wenn ich Rake Routen laufen bekomme ich
Prefix Verb URI Pattern Controller#Action
root GET/ static_pages#home
help GET /help(.:format) static_pages#help
about GET /about(.:format) static_pages#about
contact GET /contact(.:format) static_pages#contact
, was mache ich falsch?
ich beginne zu fragen, ob die Version von Schienen etwas damit zu tun hat, sehen. Ist das möglich? 4 gegen 5? – mkrinblk
Ich neige mehr dazu. Ich bin mir nicht sicher, wann er das Tutorial aktualisiert hat, aber jetzt in seinen Edelstein-Dateien für den 4.-ed hat er Schienen 5.0.0 aufgelistet, aber als ich vor ein paar Wochen mit dem Tutorial angefangen habe, denke ich, dass ich den 3.-ed auf github benutze Listen Rails 4.2.2 und in dieser Ausgabe hat er die Routen anders geschrieben.Gab es einen Wechsel zwischen den beiden Versionen, die sich auf die Syntax * _path beziehen? – mkrinblk
Ja Autor hat letzte Woche Rails-Tutorials mit 5.0.0 aktualisiert. Es wird vorgeschlagen, dass Sie es auch aktualisieren, was die weitere Reise angenehmer und fehlerfrei machen wird, zusätzlich erhalten Sie weitere neue Dinge, die Sie in 5.0.0 lernen können. –