heroku上的Rails应用程序不允许注销

时间:2018-01-16 18:39:34

标签: ruby-on-rails ruby heroku

我将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>

如果我能提供的任何东西让我知道。这非常令人沮丧。

1 个答案:

答案 0 :(得分:1)

根据您的日志消息,正在使用GET而不是DELETE方法提交注销操作。看起来您的注销链接正在使用UJS。

如果它在开发中本地工作,而不是在部署时工作,可能是因为您的javascript没有正确编译,正确提供或正确加载。查看浏览器开发人员控制台,查看是否有任何记录。