我正在尝试学习Ruby on rails并且我一直收到此错误。
我的控制器是
class Clasa9Controller < ApplicationController
def multimi
end
def progresii
end
def functii
end
def vectori
end
def trigonometrie
end
def geometrie
end
end
clasa9.html.erb
<button class="btn"><%= link_to "", multimi_path %></button>
rails routes:
multimi GET /clasa_9/multimi(.:format) clasa_9#multimi
progresii GET /clasa_9/progresii(.:format) clasa_9#progresii
functii GET /clasa_9/functii(.:format) clasa_9#functii
vectori GET /clasa_9/vectori(.:format) clasa_9#vectori
trigonometrie GET /clasa_9/trigonometrie(.:format) clasa_9#trigonometrie
geometrie GET /clasa_9/geometrie(.:format) clasa_9#geometrie
和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
我试图通过查找已经发布的内容来解决这个问题,但我无法解决这个问题......我不明白我应该改变什么。
答案 0 :(得分:1)
如果您的文件位于app / controllers文件夹内,则可能是文件名问题。您的文件应该具有名称clasa9_controller.rb。
如果没有,那么您应该通过创建初始化程序或在config / development.rb中添加autoload_path来加载文件
默认情况下加载Rails:
应用程序和引擎中应用程序的所有子目录都在启动时出现。例如,app / controllers。它们不需要是默认目录,任何自定义目录(如app / workers)都自动属于autoload_paths。
应用程序和引擎中名为app / * / Concer的任何现有二级目录。
目录测试/邮件/预览。
答案 1 :(得分:0)
看看它是clasa9
,但为什么当你使用underscore
这样的方法运行时
Loading development environment (Rails 5.1.4)
2.3.4 :001 > "Clasa9Controller".underscore
=> "clasa9_controller"
它返回clasa9_controller
,表示您的控制器为clasa9
而不是clasa_9
,文件名为clasa9_controller.rb
,那么您的routes
将为to: "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
...
遵循它应该有效。