案例1:創建一個模型,一個新的記錄與分配相關聯的對象(狀態對象,而不是Status.id)像Rails - 如何使用重載方法?
visit = Visit.create(:date => Date.today, :status => Status.first)
visit.status_id #=> 1
創建
我試圖更新的記錄後屬性'status_id'(Status.id而不是Status對象),但它返回舊值,甚至在保存對象後調用reload。例如:
visit.status_id = Status.last.id
visit.save
visit.reload
visit.status_id #=> 1
當我調用重載方法之後創建工作正常
visit = Visit.create(:date => Date.today, :status => Status.first)
visit.status_id #=> 1
visit.reload
visit.status_id = 2
visit.save
visit.status_id #=> 2
情況2:如果我分配「STATUS_ID的價值,而不是狀態對象,則無需重新加載對象和它的做工精細
visit = Visit.create(:date => Date.today, :status_id => Status.first.id)
visit.status_id #=> 1
visit.status_id = 2
visit.save
visit.status_id #=> 2
使用上述兩種情況,當我應該使用reload
方法?是否應該在save
之前或之後?
感謝您的答案,根據我的例子1當我保存在控制檯中的記錄它返回true,也沒有任何錯誤的對象(表有新記錄),現在我正在更新值(不重新加載記錄),它不會更新,如果更新應該完成,我必須重新加載然後編輯該值,然後用新值更新記錄 – nishanthan