何がしたい?
全ページ共通で行いたい処理って、ApplicationControllerのbefore_actionに書いたりするじゃないですか?
例えば、今みんなの右上にあるQiitaの通知なんかもおそらくApplicationControllerのbefore_actionで件数やコンテンツをセットしているのではないかな。(これは妄想なので真相は知らんけどね)
ApplicationControllerのbefore_actionって何も特別な記述をしていない場合、
Controllerに入る前に確実に通ってしまうのですが、そうなるとajaxなどの処理時にも通ることになるやん?
そうなると割と重い処理をbefore_actionに書いている場合ちょっとしたajax処理でも激オモになってしまうんですわ
例えばこんな記述していたらね
application_controller.rb
before_action :kuso_omo
def kuso_omo
sleep(1000)
end
解決方法
ajaxの場合だけ飛ばすって言われてもパラメーター探ってみても何もヒントがなかったんやけど、
respond_to使ったらなんとかできることがわかった。
application_controller.rb
before_action :kuso_omo
def kuso_omo
respond_to do |format|
format.html
format.js { return }
end
sleep(1000)
end
もっとスマートな書き方を知っている人は教えてね