Я работаю над учебником Майкла Хартла на railstutorial.org. У меня есть трудности В главе 5 с получением маршрута для работы. Если я начинаю с пути файлаошибки синтаксиса маршрутизации рельсов
routes.rb
Rails.application.routes.draw do
root 'static_pages#home'
get 'static_pages/help'
get 'static_pages/about'
get 'static_pages/contact'
для каждого из них есть тест, как
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
этот синтаксис работает и все тесты проходят, но потом он хочет изменить синтаксис с помощью * _path.
так что теперь тесты выглядят как
class StaticPagesControllerTest < ActionController::TestCase
test "should get home" do
get root_path
.
.
end
test "should get help" do
get help_path
.
.
end
и я обновил маршруты для
root 'static_pages#home'
get '/help', to: 'static_pages#help'
get '/about', to: 'static_pages#about'
get '/contact', to: 'static_pages#contact'
но теперь все тесты не с сообщениями
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"}
мой контроллер выглядит например
class StaticPagesController < ApplicationController
def home
end
def help
end
.
.
end
если я бег рек маршрутов я получаю
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
, что я делаю неправильно?
Я начинаю задаваться вопросом, если версия рельсов имеет что-то делать с этим. Это возможно? 4 против 5? – mkrinblk
Я больше склоняюсь к этому. Я не уверен, когда он обновил учебник, но теперь в его файлах драгоценных камней для 4-го издания у него есть рельсы 5.0.0, но когда я начал учебное пособие пару недель назад, я думаю, что использовал 3-е издание, которое на github списки Rails 4.2.2, и в этом издании он написал маршруты по-разному.было ли изменение между двумя версиями, относящимися к синтаксису * _path? – mkrinblk
Да. На прошлой неделе автор обновил руководства по рельсам с 5.0.0. Предлагается также обновить его, что сделает дальнейшее путешествие более приятным и без ошибок в дополнение к этому, вы получите больше новых вещей, чтобы учиться в 5.0.0 –