我将rails应用程序部署到heroku时遇到问题。我正在使用steam-omniauth。注销功能在我的机器上正常工作,但在部署时不起作用。单击注销链接会将我转移到404屏幕并在日志中显示此错误消息。看起来它试图出于某种原因使用'get'。我也确保耙我的数据库,并将最新版本推送到heroku。我有点想法。
at = info method = GET path =“/ logout”host = warm-sands-60002.herokuapp.com request_id = d01b9d02-238f-41f6-a894-0e74bf64a1c0 fwd =“98.169.0.136”dyno = web.1 connect = 1ms service = 6ms status = 404 bytes = 1902 protocol = https`
我在sessions_controller中的销毁行动
def destroy
if current_user
session.delete(:user_id)
flash[:success] = "Goodbye!"
redirect_to root_path
end
end
会议助手
def current_user
if cookies[:remember_token].present?
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
end
路由
match '/auth/:provider/callback', to: 'sessions#create', via: :all
delete '/logout', to: 'sessions#destroy'
和我的退出链接
<li class="nav-item"><%= link_to 'Log Out', logout_path, method: :delete %></li>
如果我能提供的任何东西让我知道。这非常令人沮丧。
答案 0 :(得分:1)
根据您的日志消息,正在使用GET
而不是DELETE
方法提交注销操作。看起来您的注销链接正在使用UJS。
如果它在开发中本地工作,而不是在部署时工作,可能是因为您的javascript没有正确编译,正确提供或正确加载。查看浏览器开发人员控制台,查看是否有任何记录。