我正在使用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
有谁知道如何解决这个问题?谢谢:))
答案 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"
参数传递。