StaticPages 中的名称错误#home

NameError in StaticPages#home

在 routes.rb

中执行以下操作后,我得到了 "NameError"
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'
  get '/sigunup', to: 'users#new'

end

有人可以帮帮我吗?谢谢

Showing /home/bdme551/bdme21/app/views/layouts/_header.html.erb where line #7 raised:

undefined local variable or method `help_path' for #<#<Class:0x007f7474f3d208>:0x007f747555c508>
Extracted source (around line #7):


      <ul class="nav navbar-nav navbar-right">
        <li><%= link_to "Home",   root_path %></li>
        <li><%= link_to "Help",   help_path %></li>
        <li><%= link_to "Log in", '#' %></li>
      </ul>
    </nav>

StaticPagesController 具有以下内容:

class StaticPagesController < ApplicationController
  def home
  end
  def help
  end
  def about
  end
  def contact
  end
end

问题是您还没有为自定义 GET 路由定义名称。如果你 运行 rake routes,除了 root.

之外,你不应该为任何路线找到 prefix

您可以使用 as 选项为自定义路由添加名称。

get '/help',    to: 'static_pages#help', as: :help

请注意,在您的代码中,您将 static_pages/help 作为 to 选项的值。

应该是static_pages#help#指的是实例方法。

现在,如果您尝试 运行 rake routes,您应该会发现 help 作为 /help 路由的前缀。

此外,通过将 / 替换为 # 来修复其他路由定义。