讓 acts_as_versioned 能處理目標 model 的 belongs_to 關連
acts_as_versioned 是個好套件。只要一點設定他就可以幫你紀錄model的版本變動。可是他預設沒有支援has_*/belongs_to的資料庫關聯,所以讓我們來看看要如何打開這個功能。
假設你要追蹤的是Post這個model,那你的model檔大概長這樣:
class Post < ActiveRecord::Base
acts_as_versioned
belongs_to :user
end
但這個時候 version.user 是會掛掉的(至少這版套件如此)
(1) 套件版本較新者可以試試這個:
class Post < ActiveRecord::Base
acts_as_versioned do
belongs_to :user
end
end
(2) 舊版者,則試這個:
class Post < ActiveRecord::Base
acts_as_versioned
belongs_to :user
end
Post.versioned_class.class_eval do
belongs_to :user
end
我用第2個方案OK,但是第1個方案則不行… (ruby 1.8.6, rails 2.3.2, acts_as_versioned 0.3.1)
喜歡這篇文章嗎?你可能也會喜歡我的學習電子報,我會分享經過篩選的優質內容 + 學習心得
📚 訂閱我的學習電子報
📖 涵蓋主題:
🧑💻 軟體工程
🎯 生產力
💰 商業理財
🧳 創業
🐱 奇怪的知識增加了
💭 思考人生心得
🎁 現在訂閱就送我個人非常愛用「學習任何領域皮毛的 AI Prompt」!
立即免費訂閱 →
✨ 不浪費你的時間,只分享達到我標準的優質內容