首页 > 解决方案 > gem Devise Sign Out 不在 Heroku 上工作,但在开发上工作就好了

问题描述

我无法让我的退出按钮在 heroku 应用程序上工作。

JS代码

    //= require jquery
    //= require jquery_ujs
    //= require turbolinks
    //= require bootstrap-sprockets
    //= require popper
    //= require_tree . 

这是我的 Routes.rb

    Rails.application.routes.draw do
    devise_for :users
       as :user do
      get "signin" => 'devise/sessions#new'
     delete "sign_out" => 'devise/sessions#destroy'
     get 'signup' => 'devise/registrations#new'
      end
      root'home#index'
       get 'about' => 'home#about'
       get'pricing' => 'home#pricing'
        get 'contact' => 'home#contact'
        get 'about'  =>  'home#about'

这是我的 Application.html.erb

 <ul class="navbar-nav">
      <li class="nav-item"><%= link_to "Home", root_path, class: "nav-link" %></li>
      <li class="nav-item"><%= link_to "About", about_path, class: "nav-link" %></li>
      <li class="nav-item"><%= link_to "Pricing",pricing_path, class: "nav-link" %></li>
      <li class="nav-item"><%= link_to "Contact",contact_path, class: "nav-link" %></li>
      <li class="nav-item pull-md-right"><%= link_to "Sign In",signin_path, class: "nav-link" %></li>
      <li class="nav-item pull-md-right"><%= link_to "Log out", signout_path, :method =>:delete, class: "nav-link" %></li>

      <li class="nav-item pull-md-right"><%= link_to "Sign Up",signup_path, class: "nav-link" %></li>

    </ul>
  </div>
</nav>

所以我做错了什么任何帮助都会很棒。

标签: ruby-on-railsherokudevise

解决方案


如果你想打电话signout_path,你必须添加这样的as: :signout东西;

delete "sign_out" => 'devise/sessions#destroy', as: :signout

推荐阅读