我是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 <%= stylesheet_link_tag :all %> <%= javascript_include_tag :defaults %> <%= csrf_meta_tag %>blahblog<%= link_to "products", :controller => "items", :action => "index" %>contact<%= link_to "cart", :controller => "cart", :action => "index" %><%= link_to_unless_current "admin", :controller => "user", :action => "admin_login" %><%= yield %>
这是我的user_controller.rb
class UserController < ApplicationController def index end def admin_login session[:login] = 1 session[:cart] = nil flash[:notice] = "Admin user successfully logged in, cart reset." redirect_to :controller => :items end end
我错过了什么routes.rb
?或者其他......我确定这是愚蠢的事情.
对于Rails> 3,您应该使用新的路由语法:
resources :items, :cart resource :user do # Route GET /user/admin_login get 'admin_login', :on => :collection end
有关路由的详细信息,请参阅Rails指南.
您需要为admin_login
路线添加方法,例如: -
map.connect '/user/admin_login', :controller => 'users', :action => 'admin_login'