rails authlogic gem - 在UserSessionsController中销毁操作错误

时间:2012-07-11 17:06:48

标签: ruby-on-rails authlogic

我正在使用Authlogic gem作为rails应用程序的身份验证系统。这是我在UserSessionsController中的代码

class UserSessionsController < ApplicationController

  layout 'auth_layout'

  def new
    @user_session = UserSession.new
  end

  def create
    @user_session = UserSession.new(params[:user_session])
    if @user_session.save
      flash[:notice] = "Login successful!"
    else
      render :action => :new
    end
 end

 def destroy
   current_user_session.destroy
   redirect_to new_user_session_url
 end
end

虽然每次输入地址栏/ user_sessions / destroy时,都会出现以下错误:

Unknown action

The action 'show' could not be found for UserSessionsController

有谁知道如何解决这个问题?谢谢:))

1 个答案:

答案 0 :(得分:1)

将以下内容添加到config/routes.rb

match "user_sessions/destroy" => "user_sessions#destroy", via: [:get]

假设您在user_session中将resource路由定义为config/routes.rb,则destroy操作的路由要求HTTP方法为DELETE至{{ 1}},通过浏览器的地址栏向(不存在的) /user_sessions路由发出GET请求失败。

添加上述路线会映射您尝试访问的/user_sessions/destroy路径,以加载/user_sessions/destroy控制器的UserSessions方法,而不是(不存在)< / em> destroy方法,将show作为"destroy"参数传递。