gem Devise Sign Out不在Heroku上工作,但致力于开发就好了



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

Js 代码

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

这是我的路线.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'

这是我的应用程序.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>

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

我相信你的链接是错误的,特别是路径,destroy_user_session_path应该有效。

<%= link_to "Log out", destroy_user_session_path, :method =>:delete, class: "nav-link" %>

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

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

最新更新