我正在尝试使用Rails3.2进行x-editable工作(以允许内联表单编辑)
当我通过AJAX从浏览器接收post时,我需要能够验证表单输入并返回响应。
如果成功了,我只需要:
render :nothing => true这个可以正常工作。
如果不成功,根据他们的文档,我需要发回这个PHP代码片段的等价物:
header('HTTP 400 Bad Request', true, 400);
echo "This field is required!";我不知道如何在Rails中做到这一点。
如果我尝试一个简单的render :status => 400,那么我的终端输出如下所示:
渲染文本模板(0.0ms)在34ms内完成200 OK (视图: 1.3ms | ActiveRecord: 1.5ms)
我找不到任何有关如何将400错误与实际消息组合在一起的信息
我该怎么做呢?
发布于 2013-06-12 05:45:50
试试这个:
render text: "This field is required!", status: :bad_request发布于 2013-06-12 06:14:47
你想要的是:
head :no_content, :status => :bad_request这清楚地表明您只生成HTTP标头
发布于 2014-11-05 22:39:44
该PHP示例不包括“此字段是必需的!”在响应中,它被打印出来。
您只需要使用状态代码为400 Bad Request的HTTP头进行响应,如下所示:
header('HTTP 400 Bad Request', true, 400);在Rails中,您可以使用以下代码:
head :bad_request
# or
head 400或者这个,但它对读者来说不太明确,你只生成了头部:
render nothing: true, status: :bad_request
# or
render nothing: true, status: 400如果您确实希望在响应中包含包含文本的正文(因此不仅仅是标题):
render text: "This field is required!", status: :bad_request
# or
render text: "This field is required!", status: 400https://stackoverflow.com/questions/17054306
复制相似问题