【发布时间】:2010-04-07 16:20:11
【问题描述】:
我无法在 after_create 回调中访问我的模型的属性...似乎我应该能够做到这一点?
控制器:
@dog = Dog.new(:color => 'brown', :gender => 'male')
@dog.user_id = current_user.id
@dog.save
型号:
class Dog < ActiveRecord::Base
def after_create
logger.debug "[DOG CREATED] color:#{color} gender:#{gender} user:#{user_id}"
end
end
控制台:(一切似乎都很好)
>>Dog.last
=>#<Dog id: 1, color: "brown", gender: "male", user_id: 1>
日志:(wtf!?)
...
[DOG CREATED] color: gender:male user
...
我的一些属性会显示,而另一些则不会!不好了!有人知道我在做什么错吗?过去我一直能够以这种方式使用 after_create。
注意:我实际使用的变量名和值不同,但方法和代码是一样的。
【问题讨论】:
-
非常有神论。看起来你的模型有问题
-
在日志中尝试使用 self.color、self.gender、self.user_id。
-
@vlad.zloteanu...是的,我做到了...同样的事情发生了
-
刚刚了解观察者...使用观察者会有什么不同吗?
-
oops... 其中一个属性实际上是一个虚拟属性,我在其中使用了 self.update_attribute 触发了 after_create
标签: ruby-on-rails activerecord model callback