我正在为我的 Rails 3.1 应用程序开发基于 JSON 的 API。我想提供自定义失败响应而不是默认响应,即:
{"error":"You need to sign in or sign up before continuing."}
我的 API 控制器包含对 的 before_filter 调用authenticate_user!
,这就是呈现此 JSON 响应的原因。
在搜索时,我遇到了这个 StackOverflow 问题,它引用了这个 Devise wiki 条目。不幸的是,wiki 条目不够详细,我无法理解它告诉我的内容。具体来说,我不知道应该将该代码放在哪里,以便设计/监狱长知道呈现我想要返回的内容。
从对另一个 SA 问题的评论来看,听起来我不需要打电话custom_failure!
,因为我使用的是高于 1.2 的 Devise 版本(具体来说是 1.4.2)。但是,wiki 条目没有解释render
调用应该去哪里,以便authenticate_user!
知道使用它而不是它自己的渲染调用。
这个render
电话去哪儿了?
编辑:我不只是试图改变消息本身(一个 la 设计en.yml
配置);我正在尝试更改响应的实际格式。具体来说,我想返回这个:
render :text => "You must be logged in to do that.", :status => :unauthorized