【发布时间】:2021-12-26 08:58:07
【问题描述】:
我有一个使用 Rails 6 和 Bootstrap gem 4.4.1 的应用程序 在我使用设计 gem 的路线中:
devise_for :users, controllers: {
sessions: 'users/sessions',
confirmations: 'users/confirmations',
registrations: 'users/registrations'
}
在views/layout/application.html.slim
doctype html
html
head
title
= full_title(yield(:title))
meta[name='viewport' content='width=device-width,initial-scale=1' charset='utf-8']
= csrf_meta_tags
= csp_meta_tag
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload'
= render 'layouts/shim'
= yield(:head)
body
= render 'layouts/header'
- flash.each do |message_type, message|
div class=("text-center alert alert-#{message_type}") = message
= yield
= render 'layouts/footer'
我使用 link_to 显示带有method: :delete 的用户注销路径:
= link_to "Log out", destroy_user_session_path, method: :delete
但在app/javascript/application.js 中添加了错误No route matches [GET] "/users/sign_out"
//= require jquery
//= require jquery_ujs
除了使用button_to之外还有什么办法吗?
【问题讨论】:
-
我用
gem 'jquery-rails' -
既然你用的是jquery-ujs,你应该改用
data: {method: 'delete'} -
@RubyRacer
method: :delete是data: {method: 'delete'}的快捷方式,因此完全没有区别。
标签: jquery ruby-on-rails