リクエストのフォーマットとジャバスクリプトのcallback
ajaxでもcreateアクション使いたいと思ってaction内で分岐してる。その分岐に hxr? ではなくてrespond_toメソッドに変更したら盛大にハマった。
def create if request.xhr? # json返す else # html返す end end
↓
def create respond_to do |format| format.json { # json返す } format.html { # html返す } end end
xhr?からrespond_toにしたら、ajaxのコールバックが発火しなくなって何もしていないのに壊れた!と思ったらレスポンスのContentTypeとリクエストのフォーマットが不一致だったので発火しなかったみたい。