【问题标题】:DEVISE - No route matches [GET] "/users/sign_out" - Rails 4设计 - 没有路线匹配 [GET] “/users/sign_out” - Rails 4
【发布时间】:2015-08-20 22:27:08
【问题描述】:

互联网上没有解决这个问题。

我在 Rails 4.2.3 和 Ruby 2.1.5 上运行 安装设计后,我收到此错误。

当我删除该行时 <%= javascript_include_tag 'application', 'data-turbolinks-track' => true % 从我的布局文件中,错误消失了,一切看起来都很好。

我尝试了在 stackoverflow 上找到的所有内容,但没有成功。

现在:

  • 我在布局中使用<%= link_to "sign out", destroy_user_session_path, method: :delete %>

  • 我尝试将初始化程序:config.sign_out_via = :delete 也更改为“get”,但没有成功。现在仍然是“删除”。无论如何,我认为它应该被删除。

  • 我的 application.js 文件包括://= require jquery //= require jquery_ujs //= require turbolinks //= require_tree .

  • Routes.rb 文件包含devise_for :users, path_names: {sign_in: "login", sign_out: "logout"}。如果我不添加这一行,它也不起作用。

如果我从布局文件中删除<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %,它就可以工作。如果我不这样做,它就不起作用。

这个 javascript 有什么问题?欢迎任何意见。

【问题讨论】:

  • 您是否尝试过从您的应用中禁用/卸载涡轮链接?
  • 是的,我做到了。只有当我从布局中删除所有“javascript_include_tag 'application'”行时,错误才会消失。有趣的是,几周前我用同样的方式开发另一个应用程序时没有问题。 @jakub-bilko

标签: javascript ruby-on-rails jquery-ui ruby-on-rails-4 devise


【解决方案1】:

尝试使用 jquery-turbolinks gem 并将您的 application.js 修改为如下所示:

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require_tree .
//= require turbolinks

【讨论】:

  • 您的 app/assets/javascripts/ 文件夹中还有其他文件吗?或者你的application.js中的任何代码?当您的页面加载时,您的浏览器的 JS 控制台有错误或警告吗?
  • 不,没有别的了。事实上,当我使用脚手架创建一个新的 Rails 应用程序只是为了测试它是否可以工作时,我遇到了同样的错误。
【解决方案2】:

好的,问题似乎是因为 Windows。解决方案是添加 gemfile:'coffee-script-source', '1.8.0'bundle update coffee-script-source 这解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-15
    • 2014-01-29
    • 2018-03-04
    • 2017-08-03
    • 2015-12-09
    • 2011-09-27
    • 2012-01-30
    相关资源
    最近更新 更多