So I\'ve been seeing people using .build
, .create
, and .create!
within their controllers more and more lately. What\'s the difference
There are a couple differences, but they're not big:
.create
is equivalent to .new
followed by .save
. It's just more succinct..create!
is equivalent to .new
followed by .save!
(throws an error if saving fails). It's also just a wee bit shorter.build
is mostly an alias for .new
. It works one way in Rails 3 and another way in Rails < 3.xThe most important part, however, is that these methods can be called through an association (has_many
, etc.) to automatically link the two models.