![]() |
1
1
这个
|
![]() |
2
6
邓肯用你的工厂作回拨得到了正确的答案。但这可能有助于你了解出了什么问题。 类方法将类作为自身接收,实例方法将实例作为自身接收。当您向任何方法提供块时,调用方法的作用域将用于该块。 创建后是一个类方法,它将回调添加到提供的块或作为参数列出的方法中。提供给回调的块(创建后、保存前等)在类方法的上下文中解释。所以self不是指正在创建的对象,而是指正在创建的对象的类。 在这段代码中:
self是用户类,不是您所期望的用户类的实例。 与Matt暗示的更传统的after-create语法相比,后者将实例方法添加到回调链中。在此上下文中,self引用实例。
是的,但不是因为你想的原因。回调只在传递符号时查找实例方法。 相反,您找到了一种解决实例方法问题的方法。不能给回调一个类方法,但可以给它提供一个在其中调用方法的块。我想您也可以定义一个调用类方法的实例方法,但这似乎有点倒退。 |
![]() |
3
1
为什么不做一些更简单的事情呢?类似:
你来自Java后台吗? |
![]() |
cluster1 · 采取独立的新行动的好处是什么? 8 月前 |
|
Robert · 使用JSON或哈希时,将NULL替换为NIL 8 月前 |
![]() |
Fred Willmore · Rails控制器不呈现任何模板 1 年前 |
![]() |
Diogo Amaral · 实现API请求的正确方式 1 年前 |
![]() |
Meknassih · 在控制器方法中分配给模型没有任何作用 1 年前 |
![]() |
Michael Ding · Rails上的默认会话到期问题 1 年前 |
|
Flávio · 基于另外两个生成数组 1 年前 |