newとbuildに違いはあるのか

結論から言うと機能的な違いはないようで、buildは「newメソッドのエイリアス」とのこと。
new - リファレンス - - Railsドキュメント

コンソールで試してみたらたしかに違いはなさそう。

[3] pry(main)> company = Company.new(id: 1)
=> #<Company:0x007fc4d742ff38 id: 1, name: nil, address: nil, phone_number: nil, mail_address: nil, created_at: nil, updated_at: nil>
[7] pry(main)> company.departments.new
=> #<Department:0x007fc4d70c9948 id: nil, name: nil, company_id: 1, deleted_at: nil, created_at: nil, updated_at: nil>
[8] pry(main)> company.departments.build
=> #<Department:0x007fc4d31e0560 id: nil, name: nil, company_id: 1, deleted_at: nil, created_at: nil, updated_at: nil>


ただ、暗黙的な使い分けはあるようで、
モデルの関係が1:nのとき、1のものにはnewを、nのものにはbuildを使うみたい。
(たしかにドキュメントの例でもそうなってる…)
[Rails][ActiveRecord]modelのnewとbuildの違いについて | Coffee Breakにプログラミング備忘録


例えば、Company(会社)とDepartment(部署)で1:nだとしたら、

Company.new
company.departments.build

となる。