Ruby on Rails Callback, what is difference between :before_save and :before_create?

前端 未结 3 497
清歌不尽
清歌不尽 2020-12-02 03:47

Could you explain in detail what the :before_save and :before_create Ruby on Rails callbacks are, and what they have to do with Rails validations?

3条回答
  •  粉色の甜心
    2020-12-02 03:57

    In a create operation under Rails, there are six callbacks before the database operation, and two after. In order, these are:

    1. before_validation
    2. before_validation_on_create
    3. after_validation
    4. after_validation_on_create
    5. before_save
    6. before_create

      DATABASE INSERT
    7. after_create
    8. after_save

    Update operations have exactly the same set, except read update instead of create everywhere (and UPDATE instead of INSERT).

    From this, you can see that validation is carried out before the before_save and before_create callbacks.

    The before_save occurs slightly before the before_create. To the best of my knowledge, nothing happens between them; but before_save will also fire on Update operations, while before_create will only fire on Creates.

提交回复
热议问题