Ruby on rails“没有路由匹配”

我是Rails的新手,我只是实现了一些基本的应用程序。 刚开始我的第二个应用程序并遇到了什么是基本问题,但谷歌什么也没有让我感到满意。

得到此错误:

No route matches {:controller=>"user", :action=>"admin_login"} 

这是我的routes.rb

 Blah::Application.routes.draw do resources :items, :cart, :user end 

这是我的applications.html.erb (想法是这当然是一个标题,我正在尝试创建一个’登录’的链接。现在它只是应该将’登录’会话变量设置为’1′ 。

    Blah      
blah

这是我的user_controller.rb

 class UserController  :items end end 

我的routes.rb缺少什么? 或者其他……我确定这是愚蠢的事情。

您需要将admin_login方法添加到路由中,例如: –

 map.connect '/user/admin_login', :controller => 'users', :action => 'admin_login' 

对于Rails> 3,您应该使用新的路由语法:

 resources :items, :cart resource :user do # Route GET /user/admin_login get 'admin_login', :on => :collection end 

有关路由的详细信息,请参阅Rails指南 。

找到“config / routes.rb”文件,编辑,找到以下行:

 # See how all your routes lay out with "rake routes" 

在此行中添加以下行,如下所示:

 map.connect '',:controller=>"index",:action=>"index" 

您可以使用

 match 'admin_login' => 'user#admin_login', :as =>'admin_login' 

此调用的默认方法是post,您可以使用更改方法行为

 :via => [:post/:put/:get] 

Rails 3中有一种新方法。您可以使用以下方法:

 get 'admin_login' => "user#admin_login"