0
我想弄清楚如何將活動記錄實例保存到數據庫,然後鎖定它以便不能再寫入(更新或保存),但仍可以從中讀取。是否有可能使RoR中的ActiveRecord模型一次寫入並鎖定?
我希望能夠在模型本身創建時做到這一點。
我想弄清楚如何將活動記錄實例保存到數據庫,然後鎖定它以便不能再寫入(更新或保存),但仍可以從中讀取。是否有可能使RoR中的ActiveRecord模型一次寫入並鎖定?
我希望能夠在模型本身創建時做到這一點。
與其覆蓋保存方法,我建議您創建一個總是返回false的before_update
鉤子。從the callback documentation:
如果before_ *回調返回false,所有後來的回調和相關動作被取消
試圖保存已經存在的記錄時,一個before_update
回調將只運行。當它最初創建時,它將運行before_create
。使用鉤子,無論使用什麼方法保存記錄,都可以確保它會被調用。當您覆蓋現有的save
方法時,您必須確保save!
,update_attributes
等全部被覆蓋。