繁体   English   中英

路由错误Ruby on Rails

[英]Routing Error Ruby on Rails

我已经在rails 3.2.6上安装了ruby,并且在执行rails服务器时

并可以访问127.0.0.1:3000,但是例如,当我生成控制器时

Rails生成控制器主体

并访问127.0.0.1:3000/somecontroller,浏览器显示以下错误:路由错误

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

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

问题是您未指定任何操作,因此控制器的“主体”为空,将不会创建具有相似名称的视图,也不会创建路由。

您需要做:

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

控制器名称后的名称是动作名称。 由于您以单数形式表示控制器“主要”,因此这可能意味着您拥有单数资源。 如果要使用复数形式,请确保您说的是“控制器主体”。

您的路线应显示:

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

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

resource :principal

为该资源生成一组RESTful路由。 您可以查看通过执行以下操作生成的路由:

rake routes

如果您不关心REST,则只需添加即可(假设PrincipalController具有index方法):

match 'principal' => 'principal_controller#index'

请参阅《 Rails指南》中的本章,以获取有关布线的更多信息:

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

您还可以在控制器中同时生成方法,并通过将它们的名称作为参数提供给rails generate controller命令来同时生成路由:

rails generate controller principal index

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM