after_action
今までcontrollerのafter_action
フィルタの使い方としてどんなことを思っていたかというと、メインの処理が終わったあとに、slackで通知するとかいう付帯的な処理をやるもんだと思っていました。
しかしRailsガイドをよくよくみると…
"after"フィルタの場合はアクションは既に実行済みであり、クライアントに送信されようとしている応答データにアクセスできる点が"before"フィルタとは異なります。
…応答データにアクセス?
response
かね。
response.body
って、整形済みのHTMLが入ってる。
ニャアニャア言わせてやるぜ。
[](http://f.hatena.ne.jp/ken1flan/20180321133655 =200x)
Gemfile
拙作の猫語変換用Gemを追加。
:
gem kittenizer
:
ApplicationController
response.body
を猫語に変換するprivate
メソッドを作って、
after_action
に指定するだけ。
app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
:
after_action :kittenize
:
private
def kittenize
response.body.kittenize!
end
end
ニャアニャア言わせた
注意
HTMLのタグに日本語がないからこんなに雑なことをやってるけど、ホントだったらちゃんとパースしたりなんだりして、やんないとダメだよね。