6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Railsアプリ全ページ、まとめてニャアニャア言わせてやるぜ。

Last updated at Posted at 2018-03-21

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のタグに日本語がないからこんなに雑なことをやってるけど、ホントだったらちゃんとパースしたりなんだりして、やんないとダメだよね。

参照

Railsガイド ActionControllerの概要

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?