У меня просто была такая же проблема с использованием учебника Хартла. Вот что я сделал.
При запросе rake routes
у меня есть:
tomsihap-MBP:sample_app tomsihap$ rake routes
Prefix Verb URI Pattern Controller#Action
root GET / static_pages#home
static_pages_help GET /static_pages/help(.:format) static_pages#help
static_pages_about GET /static_pages/about(.:format) static_pages#about
static_pages_contact GET /static_pages/contact(.:format) static_pages#contact
Тогда правильный путь:
<%= link_to "About", static_pages_about_path %>
А не <%= link_to "About", about_path %>
, как предполагает руководство Хартла.
РЕДАКТИРОВАТЬ:
Хорошо, теперь я понимаю. Это потому, что маршруты были определены так:
Rails.application.routes.draw do
root 'static_pages#home'
get 'static_pages/help'
get 'static_pages/about'
get 'static_pages/contact'
Вместо того, чтобы позже объяснить в учебнике:
Rails.application.routes.draw do
root 'static_pages#home'
get 'help' => 'static_pages#help'
get 'about' => 'static_pages#about'
get 'contact' => 'static_pages#contact'
Используя этот способ, правильный путь теперь:
<%= link_to "About", about_path %>