Ruby on rails 为什么我会遇到路由错误?
我正在学习RoR教程,教程中创建的路由文件与在我的计算机上生成的路由文件不同。教程中的路由文件是Ruby on rails 为什么我会遇到路由错误?,ruby-on-rails,Ruby On Rails,我正在学习RoR教程,教程中创建的路由文件与在我的计算机上生成的路由文件不同。教程中的路由文件是 Lecture::Application.routes.draw.do get 'say/hello' 我的档案被删除了 Rails.application.routes.draw.do get 'say/hello' 这是否会因为我遇到路由错误而有所不同: 路由错误没有匹配的路由[GET]“/say/hello” 原因是什么?您需要指定路线通向何处。 例如:() 或者在您的情况下: g
Lecture::Application.routes.draw.do
get 'say/hello'
我的档案被删除了
Rails.application.routes.draw.do
get 'say/hello'
这是否会因为我遇到路由错误而有所不同:
路由错误没有匹配的路由[GET]“/say/hello”
原因是什么?您需要指定路线通向何处。 例如:() 或者在您的情况下:
get 'say/hello', to: 'say#hello'
格式设置为“控制器名称”#控制器动作”
要定义操作,请使用:
def hello
#This is my hello action
end
如果在该控制器中有
say
控制器和hello
方法
变,
get 'say/hello', to: 'say#hello'
对,
观察,”/say/hello'
如果你没有那个控制器
在rails控制台中键入rake routes
,并更新您的问题。\config/routes.rb
#config/routes.rb
get 'say/hello' => 'say#hello' #Here say is controller and hello is action
#controllers/say_controller.rb
class SayController < ApplicationController
def hello
...
end
end
获取“say/hello”=>“say#hello”#这里say是控制器,hello是动作
#控制器/say_controller.rb
类SayController
您的控制器文件应该是:
say_controller.rb
Class SayController < ApplicationController
def hello
puts 'hello there'
end
end
这就应该做到了rake路由的输出是什么我输入了rake路由,得到了:前缀动词URI模式控制器#Action say#u hello GET/say/hello(:format)say#helloHi,欢迎使用堆栈溢出。你能把rake路径
的输出放到你的原始问题中吗?评论中的格式很难阅读…:P:)注意:差异的原因可能是rails版本的差异。教程说它使用的是什么版本?你使用什么版本?如何找到rake routes输出?本教程使用4.0,我使用的是4,那么有没有办法将我尝试过的“get'say/hello”代码“转换”为:“say'hello'”,并得到相同的错误控制器的名称是什么?您是否定义了“hello”动作?控制器是“say”,动作“hello”是在控制器中定义的。这就是我不理解错误信息的原因。它说没有路线,但在我看来,那里有一条路线。
#config/routes.rb
get 'say/hello' => 'say#hello' #Here say is controller and hello is action
#controllers/say_controller.rb
class SayController < ApplicationController
def hello
...
end
end
say_controller.rb
Class SayController < ApplicationController
def hello
puts 'hello there'
end
end
routes.rb
get '/anything/you_want/', to 'say#hello'