一個模塊我有這樣的:初始化混合的模式
class Bullet < ActiveRecord::Base
include StagedVersionMethods
...
end
這
module StagedVersionMethods
def initialize
puts self.bullet_id
end
end
當我創建子彈的實例,該模塊初始化方法火災,但我得到一個ActiveRecord錯誤: ...的ActiveRecord-2.2.2/lib目錄/ active_record/attribute_methods.rb:268:在`read_attribute」
我的意圖是初始化,我需要的初步實例變量我正在混合的記錄的關鍵值。然後模塊中的其他方法將使用這個實例變量。
模塊包含()回調不適合任務,因爲在這種情況下,self是模塊而不是AR記錄。
應該如何接近?
感謝
謝謝沙德韋爾 實例變量將是實例「自我」的副本,但它所做的編輯。它代表「父母」項目符號的臨時副本,並且該模塊將在方法中混入MOdel - has_temp_version,apply_temp_version,discard_temp_version等方法。 我嘗試了你建議的方法(這非常合理),但是包括bullet_id在內的自我屬性都是零。 我現在正在使用你的第二個建議,這工作正常 - 只比我想要的多一點管道。 乾杯 – Paul 2009-06-15 16:54:02