如何在不使用Javascript的情况下在Rails中创建注销按钮?
我正在创建一个不使用任何Javascript的Rails应用程序,我想知道如何实现一个注销按钮来将会话设置为“nil”。大多数教程建议使用“method::delete”,但这需要使用JavaScript 会话控制器:如何在不使用Javascript的情况下在Rails中创建注销按钮?,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我正在创建一个不使用任何Javascript的Rails应用程序,我想知道如何实现一个注销按钮来将会话设置为“nil”。大多数教程建议使用“method::delete”,但这需要使用JavaScript 会话控制器: class SessionsController < ApplicationController def new end def create user = User.find_by_username(params[:session][:name])
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by_username(params[:session][:name])
if user && user.authenticate(params[:session][:password])
session[:user_id] = user.id
redirect_to '/posts'
else
session[:user_id] = nil
flash[:warning] = "Failed login- try again"
redirect_to '/login'
end
end
def destroy
session[:session_id] = nil
redirect_to login_path
end
end
class sessioncontroller
您可以使用按钮来
而不是链接到
<%= button_to logout_path, method: :destroy %>
这将使整个会话存储cookie和cookie无效。更好的是,首先不要重新发明身份验证轮子。“建议使用method::delete
,但这需要使用JavaScript”-一点也不需要。使用纯HTML
。
def destroy
reset_session
redirect_to login_path
end