问题
I want to use recently stored record ID in after_save callback, is that possible if yes how?
after_save :create_children
def create_children
self.id
end
Update: Sorry there was something going wrong with my save function, my bad, sorry to waste your time
Thanks
回答1:
I just tried it with this:
class Thing < ActiveRecord::Base
after_save :test_me
def test_me
puts self.id
end
end
and in the console:
$ rails c
Loading development environment (Rails 3.0.4)
>> x=Thing.new
=> #<Thing id: nil, name: nil, created_at: nil, updated_at: nil>
>> x.save
2
=> true
>> y=Thing.create
3
=> #<Thing id: 3, name: nil, created_at: "2011-04-27 15:57:03", updated_at: "2011-04-27 15:57:03">
What else is going on in your model?
回答2:
if you call reload() after saving the object, the self.id will be populated
来源:https://stackoverflow.com/questions/5805319/rails-activerecord-using-recently-saved-record-id-in-after-save-callback