The differences between .build, .create, and .create! and when should they be used?

后端 未结 4 2008
遇见更好的自我
遇见更好的自我 2020-12-07 06:47

So I\'ve been seeing people using .build, .create, and .create! within their controllers more and more lately. What\'s the difference

4条回答
  •  轮回少年
    2020-12-07 07:30

    There are a couple differences, but they're not big:

    1. .create is equivalent to .new followed by .save. It's just more succinct.
    2. .create! is equivalent to .new followed by .save! (throws an error if saving fails). It's also just a wee bit shorter
    3. I think .build is mostly an alias for .new. It works one way in Rails 3 and another way in Rails < 3.x

    The most important part, however, is that these methods can be called through an association (has_many, etc.) to automatically link the two models.

提交回复
热议问题