【パーフェクト Ruby on Rails】を読む - その13

Rackミドルウェアを学習している最中にinitializeメソッドを定義していたのでinitializeメソッドについて再度復習しました。

initializeとは

newのデフォルト値として設定できる(Ruby超入門p200~)

RailsのModelではActiveRecordを継承しているため、initializeメソッドを指定しなくても、例えばUser.newに引数を持たせてオブジェクトを作ることができます。

Rackミドルウェア

Rackにはアプリケーションサーバ(pumaとか)とアプリケーション(何かしら)の間に処理を追加するミドルウェアという機能が備わっています。
Rackミドルウェアというと、本書の場合で言えばアプリケーションであるRackとアプリケーションサーバであるpumaの間に処理を追加する機能です。
以下のようにuseメソッドで機能を追加できます。Runtimeを追加機能として持たせている記述です。

repuire "rack"
require_relative "app"

use Rack::Runtime run App.new

Rackミドルウェアを作るとき

Rack(インターフェース)はRubyで作られているから(RailsのようにActiveRecordは継承していないので)initializeを書いています。

Rackのアプリを起動する際はrackupコマンドで起動します。

Rackミドルウェアとは関係なく単にミドルウェアとは何なのかと疑問に感じたので学習しました。

  • ミドルウェア
    • OSさんとアプリケーションさんの間に入って、いろいろな雑用をしてくれるやつ

      です。

ひとこと

点と点が線になり、また新たな点との出会いを繰り返しています。勉強が楽しいです。🐶

参照

ミドルウェア