ruby-on-rails - 设计登录错误不返回 JSON

标签 ruby-on-rails json devise

我有一个像这样的 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/

相关文章:

ruby-on-rails - 名称错误 : uninitialized constant User

ruby-on-rails - 设计,如何在保存时将电子邮件降级?

ruby-on-rails - 如何在 Aptana Studio Eclipse 插件中设置 Rails 服务器的环境变量?

ruby-on-rails - 添加新操作以设计registrations_controller

ruby-on-rails - 建立连接似乎不支持连接

javascript - 使用 javascript 比较两个 JSON 对象并查找缺失值

java - 解析有效 Json 时出现 JSONException

javascript - 以编程方式构造对象数组

ruby-on-rails - 过滤一个有很多参数的数组 "like an SQL query"

ruby-on-rails - 在表单标签中包含链接吗?