2011-04-27 63 views

回答

3

我剛試過這個:

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

還有什麼在你的模型是怎麼回事?

+0

至少在MySql中,自動增量id列必須設置爲主鍵。我有一個問題,我的主鍵由兩個字段組成 - 所以ActiveRecord不會讀取Id。我將其更改爲ID字段,代碼開始工作。 – 2015-09-03 18:33:45

1

如果您保存對象後調用重載() ,self.id將填充

+0

我試了一下,但它沒有工作 – wael34218 2011-04-27 14:15:11

+0

我試圖使用after_create以及沒有運氣 – wael34218 2011-04-27 14:24:00

+0

** Sugesstion **:如果它是一個後處理,不應該影響保存模型對象,你可以在你的'after_commit'回調中執行它 – 2016-03-11 11:36:05

相關問題