路由资源不按预期处理“新”

时间:2011-11-24 12:39:56

标签: ruby-on-rails ruby ruby-on-rails-3 url-routing rails-routing

我有一个简单的rails应用程序,我试图在数据库中添加一个非常简单的记录类型(“client_types”)。

我在routes.rb的路线中写着:

  

resources :client_types

据我所知,它应该是我client_types资源的所有常规路线的代理。

因此,当我浏览到以下URL http://localhost:3000/client_types/new时,我在运行时收到以下路由错误:

No route matches {:action=>"show", :controller=>"client_types"}

请注意,此处有问题的操作是show,而不是new(我的控制器中有这两种方法)。

所以...我在上面的资源路线下面添加了以下路线,而中提琴,它的工作原理:

match 'client_types/new' => 'client_types#new', :as => :client_type

那我错过了什么?我的假设是我的路由文件中的resources :client_types会添加一条与我后来明确添加的路由匹配的路由。

rake routes显示以下内容:

client_types     GET    /client_types(.:format)          {:action=>"index", :controller=>"client_types"}
                 POST   /client_types(.:format)          {:action=>"create", :controller=>"client_types"}
new_client_type  GET    /client_types/new(.:format)      {:action=>"new", :controller=>"client_types"}
edit_client_type GET    /client_types/:id/edit(.:format) {:action=>"edit", :controller=>"client_types"}
client_type      GET    /client_types/:id(.:format)      {:action=>"show", :controller=>"client_types"}
                 PUT    /client_types/:id(.:format)      {:action=>"update", :controller=>"client_types"}
                 DELETE /client_types/:id(.:format)      {:action=>"destroy", :controller=>"client_types"}
 client_type            /client_types/new(.:format)      {:controller=>"client_types", :action=>"new"}

1 个答案:

答案 0 :(得分:0)

现在正在运作。我的一个观点中有一个问题,这个错误信息是一个红色的鲱鱼。