gpt4 book ai didi

javascript - Rails 应用程序在 javascript 中找不到 'destroy_user_session_path'

转载 作者:数据小太阳 更新时间:2023-10-29 08:16:02 25 4
gpt4 key购买 nike

我有一个 Rails 应用程序,多年来从 2.2 开始迁移到 3.2。我正在使用 Devise 和 Omniauth 来登录,不幸的是,我认为在迁移过程中我搞砸了。

当我尝试在 application.html.erb 中设置 session 删除时,出现以下错误:

undefined local variable or method `destroy_user_session_path' for #<#<Class:0xb468e278>:0xb423e1dc>

应用程序.html.erb:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<title>Coffee Tracker</title>
<%= stylesheet_link_tag 'application'%>
<!--%= stylesheet_link_tag 'scaffold' %-->
</head>
<!--%= javascript_include_tag :defaults %-->
<%= javascript_include_tag 'application' %>
<%= csrf_meta_tag %>
...snip...
<% if user_signed_in? %>
<span id="currentuser"><%= current_user.email %></span>
<%= link_to('Logout', destroy_user_session_path, :method => 'delete') %>
<% else %>

当我尝试这条线时,我也遇到了同样的错误:

 <%= link_to('Logout', destroy_user_session_path, :method => :delete) %>

应用程序.js

// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
//= require_self
//= require_tree .
//= require jquery
//= require jquery_ujs

rails 3.2.0ruby 1.8.7 (2011-02-18 补丁级别 334) [i686-linux]

  • rails (3.2.0)
  • jquery-rails (2.0.0)
  • 设计 (2.0.0)
  • omniauth (1.0.2)
  • omniauth-facebook (1.2.0)
  • omniauth-oauth2 (1.0.0)

更新:这是佣金路线:

user_omniauth_callback     /users/auth/:action/callback(.:format) users/omniauth_callbacks#(?-mix:facebook)
coffee_list GET /coffee/list(.:format) coffee#list
root / menu#index
/:controller(/:action(/:id(.:format))) :controller#:action

最佳答案

如果你想在没有database_authenticatable的情况下使用omniauthable,你需要手动添加路由。

routes.rb中:

devise_scope :user do
delete "/users/sign_out" => "devise/sessions#destroy"
end

那么在你看来:

= link_to "Sign out", users_sign_out_path, :method => :delete

有关详细信息,请参阅这些 Omniauth Facebook 和 Twitter 教程:

为什么我们必须这样做?请在此处查看 Jose Valim 的基本原理:

关于javascript - Rails 应用程序在 javascript 中找不到 'destroy_user_session_path',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9250683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com