使用respond_with来服务404?

时间:2013-03-05 23:12:51

标签: ruby-on-rails http-status-codes respond-with

我正在尝试在rails中提供自定义404响应,但我不确定如何将:status赋予respond_with函数。

我知道render,我可以这样做:

render :status => :not_found, :json => {:response =>"There weren't any results"}

如何使用respond_with执行类似的操作?有没有办法用respond_with设置状态代码?

我使用respond_with的唯一原因是,据我所知,当您开始使用respond_with时,使用respond_to是正确的协议。如果这不正确,我应该使用render,请告诉我!

2 个答案:

答案 0 :(得分:7)

the docs; respond_with选择:status

respond_with(@user, status: :not_found) do |format|
  format.json { response: "There weren't any results" }
end

答案 1 :(得分:2)

您可以只提出ActiveRecord::RecordNotFound例外,而不是在响应中设置特定的404状态,它具有相同的效果。 Check it here