我已经在我的应用程序上安装了设计,并在我的application.html.erb文件中应用了以下内容:
<div id="user_nav">
<% if user_signed_in? %>
Signed in as <%= current_user.email %>. This cannot be cheese?
<%= link_to 'Sign out', destroy_user_session_path %>
<% else %>
<%= link_to 'Register', new_user_registration_path %> or <%= link_to 'Sign in', new_user_session_path %>
<% end %>
</div>
我运行了rake路由,确认所有路由都是有效的。
同样,在我的路线上。我有belonge_for:users和root:to => "home#index"。
当点击“签出”链接时,我得到以下路由错误:
No route matches "/users/sign_out"
知道是什么导致了这个错误吗?
For Rails 7
我们在importmap中手动导入jquery和jquery-ujs。rb:
pin "jquery", to: "https://ga.jspm.io/npm:jquery@3.6.0/dist/jquery.js"
pin "jquery-ujs", to: "https://cdnjs.cloudflare.com/ajax/libs/jquery-ujs/1.2.3/rails.min.js"
或者对于jquery使用:
./bin/importmap pin jquery
然后手动输入jquery-ujs的第二行
我们用下面的代码创建文件:app/javascript/src/jquery.js:
import jquery from 'jquery'
window.jQuery = jquery
window.$ = jquery
然后我们将它们导入app/javascript/application.js:
import "src/jquery"
import "jquery-ujs"
我们不需要改变配置就完成了。Sign_out_via =:delete of device .rb
**注意:对于jquery可能需要一个yarn,如果由于某些原因上面的不工作
我正在使用rails。所以这就是我必须要做的。重要的位是data: {turbo_method::delete}
<%= link_to t('nav.logout'), destroy_user_session_path, class: "nav-link", data: { turbo_method: :delete } %>
下面是rails在生成项目时创建的默认值。
application.html.erb
<%= javascript_include_tag "application", "data-turbo-track": "reload", defer: true %>
application.js
import "@hotwired/turbo-rails"
import "./controllers"
import * as bootstrap from "bootstrap"