在 Rails 4 中渲染之前设置响应状态

pau*_*aul 3 ruby-on-rails http

我想在调用渲染方法之前在特定操作方法中设置响应状态值。这不可能吗?

我在控制器中的许多方法都会为 #destroy、#update、#create 等操作方法呈现 JSON API 视图,而这些操作只需根据需要调用 #show 或 #index。但是,我还想返回适当的 HTTP 响应状态值,例如 201、202 等,而不必将参数传递给这些方法。本质上,我正在寻找这样的东西:

  def destroy
    # code that kills
    status :accepted # ArgumentError, status= silently fails
    index
  end
Run Code Online (Sandbox Code Playgroud)

wha*_*ird 6

如果你打电话

response.status = ###
Run Code Online (Sandbox Code Playgroud)

在控制器中,然后不要:status在 处添加参数render,它应该可以满足您的需要。