Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
3e6b2f5d
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3e6b2f5d
编写于
10月 22, 2012
作者:
P
Pablo Ifran
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Changeing some code-styles of the examples & fix a typo on dependent option
上级
d4db0951
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
18 deletion
+12
-18
activerecord/lib/active_record/callbacks.rb
activerecord/lib/active_record/callbacks.rb
+12
-18
未找到文件。
activerecord/lib/active_record/callbacks.rb
浏览文件 @
3e6b2f5d
...
...
@@ -204,43 +204,37 @@ module ActiveRecord
#
# Sometimes the code needs that the callbacks execute in a specific order. For example, a +before_destroy+
# callback (log_children in this case) should be executed before the children get destroyed by the
# depend
a
nt destroy option.
# depend
e
nt destroy option.
#
# Let's take at the code below:
#
# class Topic < ActiveRecord::Base
#
# has_many :children, dependant: destroy
# has_many :children, dependent: destroy
#
# before_destroy :log_children
#
#
def log_children
#
children.each do |child|
# #
Some c
hild processing
#
private
#
def log_children
# #
C
hild processing
# end
# end
#
# end
#
# In this case the problem is that when the +before_destroy+ is executed, the children are not available
# because the depend
ant destroy gets executed first. To solve this issue it is possibl
e
#
to use the
+prepend+ option on the +before_destroy+ callback.
# because the depend
ent destroy gets executed first. To solve this issue it is possible to use th
e
# +prepend+ option on the +before_destroy+ callback.
#
# class Topic < ActiveRecord::Base
#
# has_many :children, dependant: destroy
# has_many :children, dependent: destroy
#
# before_destroy :log_children, prepend: true
#
#
def log_children
#
children.each do |child|
# #
Some c
hild processing
#
private
#
def log_children
# #
C
hild processing
# end
# end
#
# end
#
# This way, the +before_destroy+ gets executed before the <tt>depend
a
nt: destroy</tt> is called, and
# This way, the +before_destroy+ gets executed before the <tt>depend
e
nt: destroy</tt> is called, and
# the data is still available.
#
# == Transactions
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录