我有一个像这样的 Devise SessionController:
class SessionsController < Devise::SessionsController
# Respond only with json, no html
respond_to :json
end
当用户输入错误的登录名/密码时,响应是来自 i18n 文件 devise.en.yml 的字符串
Invalid email or password.
我想有类似其他验证错误的东西
{
"errors" : {
"message" : "Invalid email or password"
}
}
编辑 我通过创建一个自定义失败应用程序找到了解决方案,但我认为 Devise 可以在没有这个自定义失败的情况下做到这一点,对吗?
最佳答案
我找到了解决方案。
在 app/config/initializers/devise.rb
中,我更改:
config.navigational_formats = [:json]
到
config.navigational_formats = []
我真的不知道为什么但是...这有帮助:http://blog.andrewray.me/how-to-set-up-devise-ajax-authentication-with-rails-4-0/
关于ruby-on-rails - 设计登录错误不返回 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28268608/