Rails で RESTful な URL にこだわらないと...
備忘録。
ダメなルーティングの臭い
- 名詞ではなく動詞が使われている
- resources/resourceよりもget/post/put/patch/deleteが使われている
- コントローラ内にscaffoldで生成される7つのアクション以外のアクション定義が多い
- resources/resourceのonlyオプションで本来使われるべき7つのアクションがcollection/memberブロック中に登場する
ダメなルーティングだと起こりえる問題
- リソースの発見を逃す
- モデルとテーブルの発見を逃す
- 機能追加の際に、テーブルにNULL可なカラムを追加し、レコードをUPDATEする処理を書くようになる
- 1つのテーブルに複数の要件が盛り込まれ、モデルのコールバックなどで「関心事の分離」ができない状態になる
- しばしば正規化が崩れ、状態管理が複雑になる/過去の状態が追跡不可能になる
- コントローラにアクションが増えるにしたがって、モデルにあるべきロジックがコントローラに残る(Fat Controller)