Aiur

zellux 的博客

关于 respond_to 不同格式的顺序

以前没注意过 Rails controller 中 respond_to 的格式顺序,后来碰到了一个诡异的 bug,才发现这里的顺序对程序行为是有影响的。bug 的现象是用某个应用商店桌面端浏览网站时,会出现返回 JSON 而不是网页的情况。由于当时报告错误的用户给出的 bug 描述是「点击链接后出现乱码」,导致 debug 一开始没找对方向,废了不少功夫才解决这个问题。

问题就出在不同格式的声明先后上,有问题的代码是:

respond_to do |format|
  format.json { render json: @items }
  format.html
end

阅读全文 →