こんにちはgengenです。 今回はRailsにおけるデザインパターンであるFormObjectについての記事になります。 FormObjectは、バリデーションや特定のユースケース向けの処理をモデルから分離する手法です。 ネット上のFormObjectについての記事ではFormObjectクラスに、操作対象になるActiveRecordのインスタンスを返すように#to_modelを実装する例をよく見ます。 このやり方は結構ピーキーで拡張性とかを考えると避けた方が無難ではないか?ということについて書いていきたいと思います。 なぜ#to_model実装するのか FormObjectは色々な実現方法があると思いますが、Rails: Form Objectと#to_modelを使ってバリデーションをモデルから分離する(翻訳)のようにActiveModel::ModelをincludeしたForm
![FormObjectにおける`#to_model`について|TechRacho by BPS株式会社](https://cdn-ak-scissors.b.st-hatena.com/image/square/fd77826d66f325c992cd79475f198f5b969f1e8b/height=288;version=1;width=512/https%3A%2F%2Ftechracho.bpsinc.jp%2Fwp-content%2Fuploads%2F2021%2F08%2Frails_formobject_to_model_eyecatch-min.png)