Ruby on Rails:如何在ERB视图中获取HTTP状态码并动态变更显示内容?
解决方案
在Rails视图中,你可以直接通过response.status对象获取当前请求的HTTP状态码,以此区分不同渲染场景:
方法一:通过状态码数值判断
直接对比状态码数值(409对应冲突状态,默认正常状态为200):
<%= if response.status == 200 %> Normal status code <% else %> Error 409 - Conflict <% end %>
方法二:通过状态码符号判断
Rails的状态码对象支持用symbol方法获取对应标识(比如:conflict对应409),可读性更强:
<%= if response.status.symbol == :conflict %> Error 409 - Conflict <% else %> Normal status code <% end %>
补充说明
- 当控制器调用
render my_view status: :conflict时,response.status会被设置为409,对应符号为:conflict - 正常渲染视图时,默认HTTP状态码为200,对应符号为
:ok
内容的提问来源于stack exchange,提问作者Jimmy Li
相关产品推荐
相关产品推荐

