2

我想在 after_save 回调中使用最近存储的记录 ID,如果可以的话,可以吗?

after_save :create_children

def create_children
 self.id
end

更新:对不起,我的保存功能出了点问题,我的错,很抱歉浪费你的时间

谢谢

4

2 回答 2

5

我只是用这个尝试过:

 class Thing < ActiveRecord::Base
   after_save :test_me

   def test_me
     puts self.id
   end
 end

在控制台中:

$ 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">

您的模型中还发生了什么?

于 2011-04-27T15:58:14.203 回答
1

如果在保存对象后调用 reload(),self.id 将被填充

于 2011-04-27T14:11:08.127 回答