はじめに
プログラミング初心者が学習の過程で学んだことをアウトプットする目的で投稿しています。
formオブジェクトパターンを2回に分けて投稿します。
Formオブジェクトとは
1つのフォーム送信で複数のモデルを操作する場合や、テーブルに保存しない情報にバリデーションをかける場合などに使用します。モデルに近い機能を持ったクラスを新たに作成し、そのクラスに処理の内容を記述していきます。
実装の手順
1.新しくモデルディレクトリの直下に、ファイルを作成し、クラスを定義します。
app/models/donation_address.rbを作成し、ファイル内に下記を記述。
end
2.作成したファイルにバリデーションを記述する。
クラス定義のclass〜end間に下記を記述。
:Model
``` ↑
これを記述することでバリデーションなどの一部の機能が使える
3.保存したいカラム名を属性値として扱えるようにする。
2.の記述の下に、記述する。
```attr_accessor: カラム名,カラム名,カラム名・・・(複数テーブルの取扱たいカラム名)
4.バリデーションの記述を行う。
複数テーブルの対象となる、モデルのバリデーションを新たに作成したモデルファイルへ記述する。このファイルにはアソシエションの定義ができないため、新たにバリデーションへ追記する。
※紐ついているuser_idなど
終わりに
Formオブジェクトに対して、2回にかけて投稿しています。今回はその前半になります。