Ruby on rails 路由错误未初始化常量控制器

Ruby on rails 路由错误未初始化常量控制器,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,routes,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 4,Routes,Ruby On Rails 3.2,我正在尝试学习RubyonRails,但我一直遇到这个错误 我的控制器是 class Clasa9Controller < ApplicationController def multimi end def progresii end def functii end def vectori end def trigonometrie end def geometrie end end 和routes.rb get 'clasa_

我正在尝试学习RubyonRails,但我一直遇到这个错误

我的控制器是

class Clasa9Controller < ApplicationController
  def multimi
  end

  def progresii
  end

  def functii
  end

  def vectori
  end

  def trigonometrie
  end

  def geometrie
  end
end
和routes.rb

 get 'clasa_9/multimi', to:"clasa_9#multimi", as:"multimi"

  get 'clasa_9/progresii', to:"clasa_9#progresii", as:"progresii"

  get 'clasa_9/functii', to:"clasa_9#functii", as:"functii"

  get 'clasa_9/vectori', to:"clasa_9#vectori", as:"vectori"

  get 'clasa_9/trigonometrie',  to:"clasa_9#trigonometrie", as:"trigonometrie"

  get 'clasa_9/geometrie',  to:"clasa_9#geometrie", as:"geometrie"

  devise_for :users

  get 'pages/home'

  get 'pages/clasa9'

  get 'pages/clasa10'

  get 'pages/clasa11'

  get 'pages/clasa12'

  get 'pages/about'

  root 'pages#home'
我越来越

路由错误 未初始化常数Clasa9Controller


我试图通过查找已经发布在这里的内容来解决这个问题,但我就是解决不了。。。我不明白应该更改什么。

如果您的文件位于app/controllers文件夹内,则可能是文件名问题。您的文件的名称应为clasa9_controller.rb

如果没有,则应通过创建初始值设定项或在config/development.rb中添加自动加载路径来加载文件

默认情况下,Rails加载:

  • 启动时应用程序和引擎中应用程序的所有子目录都存在。例如,应用程序/控制器。它们不需要是默认目录,任何自定义目录(如app/workers)都自动属于自动加载路径

  • 应用程序和引擎中名为app/*/concerns的任何现有二级目录

  • 目录test/mailers/previews


  • 如果您的文件位于app/controllers文件夹内,则可能是文件名问题。您的文件的名称应为clasa9_controller.rb

    如果没有,则应通过创建初始值设定项或在config/development.rb中添加自动加载路径来加载文件

    默认情况下,Rails加载:

  • 启动时应用程序和引擎中应用程序的所有子目录都存在。例如,应用程序/控制器。它们不需要是默认目录,任何自定义目录(如app/workers)都自动属于自动加载路径

  • 应用程序和引擎中名为app/*/concerns的任何现有二级目录

  • 目录test/mailers/previews


  • 看,这将是
    clasa9
    ,但为什么用这样的方法运行它呢

    Loading development environment (Rails 5.1.4)
    2.3.4 :001 > "Clasa9Controller".underscore
     => "clasa9_controller" 
    
    它返回
    clasa9_控制器
    ,这意味着您的控制器是
    clasa9
    而不是
    clasa9
    ,文件名将是
    clasa9_控制器.rb
    然后您的
    路由
    将是
    到:“clasa9#multimi”
    这样

    get 'clasa_9/multimi', to: "clasa9#multimi", as: "multimi"
    #or
    #get 'clasa_9/multimi', to: "clasa9#multimi", as: :multimi # removed doublw quotes from multimi 
    ...
    

    遵循这个方法应该会起作用。

    看,它应该是
    clasa9
    ,但为什么用这样的方法运行它呢

    Loading development environment (Rails 5.1.4)
    2.3.4 :001 > "Clasa9Controller".underscore
     => "clasa9_controller" 
    
    它返回
    clasa9_控制器
    ,这意味着您的控制器是
    clasa9
    而不是
    clasa9
    ,文件名将是
    clasa9_控制器.rb
    然后您的
    路由
    将是
    到:“clasa9#multimi”
    这样

    get 'clasa_9/multimi', to: "clasa9#multimi", as: "multimi"
    #or
    #get 'clasa_9/multimi', to: "clasa9#multimi", as: :multimi # removed doublw quotes from multimi 
    ...
    

    按照此操作,它应该会工作。

    您的控制器文件名是什么?它必须与您的控制器名称匹配-在您的情况下,我相信clasa9_controller.rb或clasa_9_controller.rb控制器文件的名称是什么?它必须与您的控制器名称匹配-在您的情况下,我相信clasa9_controller.rb或clasa9_controller.rbI面临相同的问题。我的控制器很好,你能告诉我怎么做你的第二个解决方案吗…………如果不行,那么你应该通过创建一个初始值设定项或在config/development.rbI中添加一个自动加载路径来加载文件。我面临着同样的问题。我的控制器很好,您能告诉我如何执行第二个解决方案吗…………如果没有,那么您应该通过创建初始值设定项或在config/development.rb中添加自动加载路径来加载文件