2
如果我定義如下模型...:save鉤子與DataMapper中的update鉤子有什麼關係?
class Foo
include DataMapper::Resource
property :name, String, :key => true
before :save, do
puts 'save'
end
before :update, do
puts 'update'
end
end
爲什麼第二保存也觸發「更新」掛鉤?
ruby :001 > f = Foo.new
=> #<Foo @name=nil>
ruby :002 > f.name = 'Bob'
=> "Bob"
ruby :003 > f.save
save
=> true
ruby :004 > f.name = 'Joe'
=> "Joe"
ruby :005 > f.save
save
update
=> true
當然,我可以潛入源代碼並回答代碼驅動這種行爲的問題。更重要的是,我想要理解在實踐中使用每個鉤子的正確方法。
我已經使用這段代碼來幫助我生成一個很好的鉤子前後公共圖:https://www.lucidchart.com/documents/view#4307-531c-4f1f159f-ace0-1ca90a7a4df5?branch=9cd86b38 -93fa-4432-ac0d-b351706819de – mltsy
@mltsy不要忘記在調用鉤子之前,你保存的對象必須是髒的!否則,掛鉤根本不運行。 – Frank