Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails回调究竟是如何工作的_Ruby On Rails_Activerecord - Fatal编程技术网

Ruby on rails rails回调究竟是如何工作的

Ruby on rails rails回调究竟是如何工作的,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我很好奇这些回调到底是如何工作的。如果我初始化一个对象,然后使用方法save将其放入我的数据库中,在创建回调之前会起作用吗? 保存前的也有类似的情况。它是否仅在使用函数save之前被逐字调用,或者在使用create方法的情况下也会被触发?在保存记录之前将被触发。无论是创建还是更新记录,都会触发回调。因此,是的,当您使用create方法时,它也会被触发 before\u create仅在创建记录之前触发,而不是在更新记录之前触发 在更新之前也有,仅在更新之前触发,但在创建之前不会触发 这并不取决于

我很好奇这些回调到底是如何工作的。如果我初始化一个对象,然后使用方法
save
将其放入我的数据库中,在创建
回调之前
会起作用吗?

保存前的
也有类似的情况。它是否仅在使用函数
save
之前被逐字调用,或者在使用
create
方法的情况下也会被触发?

在保存记录之前将被触发。无论是创建还是更新记录,都会触发回调。因此,是的,当您使用
create
方法时,它也会被触发

before\u create
仅在创建记录之前触发,而不是在更新记录之前触发

在更新之前也有
,仅在更新之前触发,但在创建之前不会触发

这并不取决于您使用的方法,而是取决于记录是否在之前被持久化。换句话说,这取决于您是在更新还是创建记录。

此url将帮助您找到正确的答案。在此url上,您还可以找到回拨的顺序。希望对你有帮助