開発ノート@HarikoApps

HarikoApps: https://hariko.sprkls.me

2024-06-09

Railsアプリのコントローラーをどのように書けば良い? #7

Railsアプリのコード整理ではまずMVCの境界を意識するのが良い #6ではMVC境界を意識することの重要さについて書いたのですが、MVCのうちコントローラーをどのように書くべきか簡潔に説明しているツイートを見かけました。以下は筆者による日本語訳です。とてもわかりやすい!

混乱したRailsコントローラーになるのは次のような場合です。

1. ビューがどのように見えるかを決定しようとする。どのビューを使うか、ビューにどんなデータを渡すかを決定することに留まらず。
2. ドメイン関連のことを実行しようとする。ドメインオブジェクトを見つけて高位のメソッドを呼び出すことに留まらず。
良いコントローラーアクションは基本的にこれらの段階的なステップを踏みます。

1. データはどこにありますか?取って来よう。
2. どのビューがユーザーに表示されるべきですか?
3. そのビューにデータを入れていきましょう。
時々はこれよりかなり複雑になることもありますが、多くの場合このようにとてもシンプルです。
POST/PUTの場合、ステップ1は次のようになります。
1a: HTTPで受け取ったものをドメインに関連づける
1b: パラメーターをそのドメインオブジェクトに渡し、アップデート処理を行わせる
1c: 新たなアップデート後のデータを取得する
Updated at