2015-04-03 63 views
0

我无法找到描述在每个ActiveRecord生命周期阶段发生什么的文档。 GuideAPI列出了可用的回调。在每个ActiveRecord模型生命周期阶段会发生什么?

如果我不知道模型的状态,或者生命周期中较早发生的事情,我该如何知道哪个回调是合适的?

例如,什么时候模型得到持续,并获得id?该指南列出回调:

3.1创建对象
before_validation
after_validation
before_save
around_save
before_create
around_create
after_create
after_save的
after_commit/after_rollback

所以,我敢肯定,该模型没有被持久化,并没有和ID,之前调用before_save。我期望该模型具有id,然后调用after_save。不幸的是,我不知道这两个模型之间的位置在哪里,并且获得了它的ID。

EDIT

再次,这纯粹是一个例子。我已经更新了这个问题,以澄清:“在ActiveRecord模型生命周期阶段的每个期间会发生什么?”

+0

downvote没有解释?如果我知道你不喜欢它,我会提出更好的问题。 – 2015-04-03 16:54:44

回答

0

其实我无法提供给你一个链接,其中解释了所有这些东西。

但是,如果我是你,我会实现一个方法,将在每个这些回调中调用,并且它可以帮助找出,当模型gaines它的id。

0

“保存”操作是在将记录插入到数据库的查询执行时执行的,通常这个操作将分配一个id。

我不能肯定地说没有例外,但是id在插入过程中通常由数据库分配。指定的id可以作为insert语句的一部分传回给应用程序。