Ruby on RailsでModelをnew, buildで生成する場合の違いについてです。
newについて
newは通常のインスタンス生成に使われます。
@user = User.new
こんな感じでその後にデータを設定し、saveして保存となります。
通常の使い方だと思います。
buildについて
buildは関連したDBテーブルがある場合に役立ちます。
例えば、UserテーブルとItemテーブルが関連づいていた場合。
User (1) – Item (N) の場合とします。
@item = @user.items.build
※@userは(id: 1, name: XXXX, age: XXなど適当なデータが保存されているものとする)
このようにbuildを使うことによって@userに紐付いたItemインスタンスを生成することができます。
関連するテーブルのインスタンスを生成する場合は可読性も上がるため使っていきたいですね。
なにか参考になれば幸いです(*^^*)