form objectって何?
form objectとは、複数モデルと関連した検索フォームや入力フォームの設定を、モデルや、コントローラーのみで行うと、FATモデル及び、FATコントローラーなコードになってしまう問題が発生してしまいます。そこで、フォーム関連の設定をapp/form/~以降のファイルにて設定させることで、コードをスッキリさせるために使う設定が、form objectです。
バリデーションやデータの集約をフォームオブジェクトに任せることで、アプリケーション全体の可読性が向上します。
つまり、フォームに関する設定や、メソッドをapp/form/~以降にまとめておくとコードが見やすくなるという話だと思います。
今回は、関連した他モデルから投稿記事を検索するなど、複雑な検索フォーム及びセレクトボックスを作る際の、form objectを使用します。
$ mkdir app/forms
$ touch app/forms/article_seach_form.rb