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