2012-06-19 34 views
-1

在我与Rails的第一个方法我已经简单地创建一个空白SayController和静态hello.rhtml观点,但是当http://localhost:3000/say/hello的页面开始恢复了我一个路由错误是这样的:的Rails 3.2路由错误

No route matches [GET] "/say/hello" 
Try running rake routes for more information on available routes. 

的Rails版本:3.2。 6

+0

那么,“耙路线”的输出是什么? – thisfeller

回答

0

你应该在你的config/routes.rb有东西来定义该路线。尝试:

match 'say/hello' => 'say#hello', :as => 'say_hello' 

的去localhost:3000/say/hello 还检查了这个文档:

http://guides.rubyonrails.org/routing.html

+0

它的工作,很好! 但我不明白,如果每次创建控制器时都运行该任务? – mariobros

+0

如果你在控制器中创建一个新的方法并且想要路由到它,你必须在config/routes.rb中定义它。 – qusr

+0

现在我有模板丢失错误: 缺少模板say/hello,application/hello with {:locale => [:en],:formats => [:html],:handlers => [:erb,:builder,:咖啡]}。搜索:*“C:/ rails_proj/demo/app/views” – mariobros

1

好像你没有为hello一个route添加到您的config/routes.rb文件。

YourApp::Application.routes.draw do 
    match 'say/hello' => 'say#hello', :as => :hello 
end 

这将匹配路线say/hello到控制器say#之前的部分)和动作hello#后的部分)。

:as => :hello使它成为named route,所以你可以在你的应用程序中将它称为hello_path

错误消息告诉您运行rake routes(从控制台),它会在您的应用中显示existing routes

0

我认为,控制器:和行动:你好

添加下列内容config/route.rb

get 'say/hello' => 'Say#hello'