Rails Something is Wrong ......(noob)

时间:2012-03-22 21:55:06

标签: ruby-on-rails ruby controller

我是一个菜鸟,我正在学习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. 

2 个答案:

答案 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应用程序将识别该模式。)