我在使用 Hartl 的教程时遇到了同样的问题。这就是我所做的。
问的时候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 %>Hartl 的指南所建议的。
编辑 :
好的,现在我明白了。那是因为路由是这样定义的:
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 %>