Rails ActiveRecord在after_save回调中使用最近保存的记录id

时间:2011-04-27 13:58:17

标签: ruby-on-rails callback after-save

我想在after_save回调中使用最近存储的记录ID,如果是的话可能会如何?

after_save :create_children

def create_children
 self.id
end

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

由于

2 个答案:

答案 0 :(得分: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">

你的模特还有什么?

答案 1 :(得分:1)

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