[英]Devise destroy_user_session_path on heroku
我正在尝试从heroku生产中的(测试)站点注销用户。
问题是heroku在GET /users/sign_out
将此<%= link_to 'Logout', destroy_user_session_path, method: :delete %>
转换<%= link_to 'Logout', destroy_user_session_path, method: :delete %>
我已经尝试过此<%= link_to 'Logout', destroy_user_session_path, method: :delete, :data => { :no_turbolink => true } %>
如这里建议的那样, 设计destroy_user_session_path不起作用
我已经找到一些解决方案来答复destroy_user_session_path在Rails中触发GET而不是DELETE,但是我对答案不满意,因为我想避免使用GET。
可以在开发中注销,因此我检查了https://devcenter.heroku.com/并进行了一些修改,但仍然遇到问题。 我致力于资产管道,并添加了以下这些瑰宝:
gem 'rails_serve_static_assets'
gem 'rails_stdout_logging'
这些gems在其他情况下可能很有用,但对我而言却不是(我也遇到无法持久保存的图像链接)。
编辑
这是我的完整模板
<div class="" style="background-color: #1a252f;">
<ul class="nav justify-content-center">
<% if user_signed_in? %>
<li class="nav-item">
<%= link_to 'Edit account|', edit_user_registration_path %></li>
<li class="nav-item">
<%= link_to 'Logout', destroy_user_session_path, method: :delete, :data => { :no_turbolink => true } %></li>
<% else %>
<li class="nav-item">
<%= link_to 'Login', new_user_session_path %></li>
<% end %>
</ul>
</div>
编辑2
我也在routes.rb中尝试过:
devise_for :users do
get "/users/sign_out" => "devise/sessions#destroy", :as => :destroy_user_session
end
而且我在heroku日志中仍然收到状态404。
这里提供的解决方案: 在Rails中, destroy_user_session_path会触发GET而不是DELETE,对我来说就是这样,即使用config.sign_out_via = :get
在devise.rb中获取
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.