2012-07-27 126 views
0

我已经安装在轨道上3.2.6红宝石,当我执行 轨服务器路由错误Ruby on Rails的

,并获得127.0.0.1:3000它的工作原理,但是当我生成一个控制器,例如

轨道生成控制器主要

和获得127.0.0.1:3000/somecontroller,浏览器显示以下错误: 路由错误

没有路线匹配[GET]“/ principal” 尝试运行耙路线以获取有关可用路线的更多信息。

我需要做什么,这可以简单地解释?

+0

看到你的routes.rb可能的帮助。 – 2012-07-27 23:00:32

+0

感谢,仍然不工作,甚至提出任何名称后:3000,错误是相同的 – chenio 2012-07-27 23:09:50

+0

如果您将控制器定义为'委托人'然后路由可能是'/委托人'你尝试过那样? – uday 2012-07-27 23:13:14

回答

2

问题是你没有指定任何操作,所以你的控制器的'主体'是空的,没有视图将创建类似的名称,并且没有创建路由。

你需要做的:

rails generate controller principal index [show] [edit] [update] [create] [destroy] 

名称后您的控制器名称是操作名称。既然你以单数形式表示了管理者的“主要”,那么这可能意味着你有一个单一的资源。如果你想以复数形式出现,请确保你说'控制器主管'。

而且你的路线应应显示:

resource :principal [ or :principals or multiple Restful routes ] 
1

你需要编辑的config/routes.rb中到路由器哪个控制器告诉路由您的要求。 Rails标准是使用RESTful路由,在你给出的例子中,这将等同于单数主体资源。因此,您需要添加:

resource :principal 

为此资源生成一组RESTful路由。你可以看到生成的路由做:

rake routes 

如果你不关心REST,那么你可以简单地添加(假设PrincipalController有一个指标法):

match 'principal' => 'principal_controller#index' 

看一看从Rails的指南本章更多信息有关路由:

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

您也可以在生成中的SAM控制方法和路线通过作为参数传递给轨提供他们的名字e时代产生控制器例如命令:

rails generate controller principal index