从自定义SessionController检索Devise错误

时间:2012-10-08 21:32:34

标签: ruby-on-rails authentication devise

我创建了自己的SessionController,扩展了Devise :: SessionsController。这样,它可以响应HTML,JSON和XML,具体取决于用户是在浏览器中还是使用移动设备。

如果格式为HTML,我只需拨打super,一切正常。如果它是JSON / XML,我希望能够在登录不起作用时显示错误以及401状态代码。现在我有:

respond_to do |format|
    format.html { super }

    if current_user
        ...
    else
       format.json { render :json => { :status => 401 } }
    end
end

我想将:errors => ???添加到该哈希值。但是如何从Devise中获取错误列表?

1 个答案:

答案 0 :(得分:0)

通常,表单错误存储在object.errors中(用于视图)。根据Devise核心SessionsController中的代码,您似乎可以从resource对象中提取错误