我是一个菜鸟,我正在学习Steve Holzner撰写的“Begin on Ruby on Rails”一书。他告诉我制作一个名为hello_controller的控制器,编辑控制器,使其显示
class HelloController < ApplicationController
def there
end
end
然后,他告诉我创建一个名为there.rhtml的文档,其中包含一些简单的HTML,并将其放在views / hello目录中。
然后,我启动rails服务器,导航到localhost:3000 / hello /那里,HTML的结果应该出现在页面上,
我明白了:
Routing Error
No route matches [GET] "/hello/there"
Try running rake routes for more information on available routes.
答案 0 :(得分:5)
请参阅http://guides.rubyonrails.org/routing.html
您需要使用there操作向hello控制器添加路由。路线的文件通常在
中配置/ route.rb
例如,如果添加
match '/hello/there' => 'hello#there'
到您的路线文件,您应该看到/ hello /将路由到您正确的控制器和操作。但是,你需要了解更多关于路线的知识,而不是我在这里给你看的,所以请仔细看看我给你的链接!
答案 1 :(得分:1)
要获得最快速的修复,请尝试在浏览器中输入以下网址(注意结尾):
localhost:3000/hello/there/0
Ken Li给出了一些很好的建议。这里有一些解释:您的路径文件可能默认只解释模式/[controller_name]/[action_name]
之后的少数几条路线,并且'那里'不会识别它会识别的少数几个动作名称之一(直到您更改routes.rb文件)。但是,对于遵循模式/[controller_name]/[action_name]/[id]
。
(不要担心:您的操作实际上并不需要对网址末尾的ID执行任何操作。只是如果ID存在,您的rails应用程序将识别该模式。)