【问题标题】:NoMethodError users_url with devise (ajax)NoMethodError users_url 与设计(ajax)
【发布时间】:2019-10-15 04:31:47
【问题描述】:

我将设计 2.2.2 与 rails 3.2.11 一起使用

我将设计与 ajax 请求一起使用

我在initializers/devise.rb改了如下配置

config.navigational_formats = [:json, :html]
config.http_authenticatable_on_xhr = false

当我提交一个空的登录请求时,我希望得到一个带有错误哈希的 json 响应,但我得到的是 500(跟踪见下文)(它适用于注册请求)

这是我的路线(没什么特别的)

devise_for :users

踪迹:

Started POST "/users/sign_in.json" for 127.0.0.1 at 2013-01-27 13:33:45 +0100
Processing by Devise::SessionsController#create as JSON
  Parameters: {"user"=>{"email"=>"", "password"=>"[FILTERED]"}}
Completed 401 Unauthorized in 1ms
Processing by Devise::SessionsController#new as JSON
  Parameters: {"user"=>{"email"=>"", "password"=>"[FILTERED]"}}
Completed 500 Internal Server Error in 40ms

NoMethodError (undefined method `users_url' for #<Devise::SessionsController:0x007fe88ddd9550>):

【问题讨论】:

  • 我前几天遇到了这个问题,然后神奇地消失了。
  • 帮助很大 ;o),你的应用在 github 上可用吗?
  • 不,很遗憾是私人的。

标签: ruby-on-rails devise


【解决方案1】:

您可能正在覆盖 after_sign_in_path_for 并且其中有一个返回 nil 的代码路径。

这会导致设计回退到其默认行为并调用users_url 以获取重定向到的路径。

我为什么会这样想?因为您遇到了与我相同的错误(并且掉了一些头发),而且this bug report 包含许多其他人的 github 用户名,这些人因这个特定问题而感到谦卑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多