[英]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.