Routes Rails 3.0:向控制器添加新操作
在Rails3.0之前,向控制器添加新操作很容易 您只需将一个新方法Routes Rails 3.0:向控制器添加新操作,routes,ruby-on-rails-3,Routes,Ruby On Rails 3,在Rails3.0之前,向控制器添加新操作很容易 您只需将一个新方法foobar添加到控制器类(称为mycontroller)。 在该控制器的视图文件夹中添加一个html文件,foobar.html.erb 然后,如果将浏览器指向../mycontroller/foobar,则一切正常 但是,在rails 3.0中,当我添加如上所述的新操作时,出现以下错误: 没有路径匹配“/mycontroller/foobar” rails 3.0发生了什么变化?我做错了什么?错误说明了一切。您的config
foobar
添加到控制器类(称为mycontroller)。
在该控制器的视图文件夹中添加一个html文件,foobar.html.erb
然后,如果将浏览器指向../mycontroller/foobar
,则一切正常
但是,在rails 3.0中,当我添加如上所述的新操作时,出现以下错误:
没有路径匹配“/mycontroller/foobar”
rails 3.0发生了什么变化?我做错了什么?错误说明了一切。您的config/routes.rb中没有相应的路由。检查默认路由是否已注释掉。如果是这样,您需要为新操作添加路由。将此添加到
路由。rb
:
get 'mycontroller/foobar'
这将路由URLhttp://mysite.com/foobar
到使用HTTP GET的foobar
操作
更多信息:
def foobar
并非严格要求(除非在显示视图之前需要在foobar
中执行某些操作),但视图必须存在。换句话说,即使控制器中不存在def foobar
方法,视图foobar.html.erb
仍将呈现rake路由的所有路由。因此,如果rake routes
的输出没有列出到某个控制器/操作的路由,则会出现“无路由匹配”错误