2011-09-10 49 views
0

我有一個圖片模型中的多態關聯,可以屬於其他兩款車型的時間戳,這是通過一個多態關聯捕獲:更新在Rails的

has_many :photos, :as => photo_container 

我想更新photo_container的時間戳模型創建新照片時。我在照片模式與after_create回調做這個:

self.photo_container.update_attribute(:updated_at, Time.now) 

由於我的兩個photo_container型號有update_attribute場應該工作正常,但是,我得到了相應的線以下異常回調:

當然
NameError (uninitialized constant Photo::PhotoContainer) 

利用它,如果我檢查photo_container類型工作正常,加載模型和改變的時間戳,但它是不乾淨/通用。任何想法?

回答

3

使用belongs_to關聯中的觸摸選項。它應該工作正常。例如:

class Picture < ActiveRecord::Base 
    belongs_to :imageable, :polymorphic => true, :touch=>true 
end 
+0

奇妙的選擇,但它仍然給我同樣的錯誤。 – RaySF

+0

你可能會遇到一些模型問題。用定義更新你的問題。也許別人或我可以幫助 – lucapette

+0

好吧,它現在起作用,我沒有說明這種關係是多態的,並且不知何故,因爲我從來不必訪問這兩個模型的photo_container,所以我從來沒有遇到過問題。很高興我做到了,因爲它使用方式更清潔:觸摸:) – RaySF