0
我有一個用戶對象引用的對象,也就是通過兩個不同的關聯路徑相關的發佈對象:滑軌:更新通過不同的關聯路徑
- 郵政 - (的has_many) - >評論 - (屬於) - >
- 後(的類型用戶)作家 - (屬於) - >器(的類型用戶)
說出下列保持:
user1.name == "Bill"
post1.comments[1].writer == user1
post1.writer == user1
現在,當我取回POST1並從數據庫的意見,我更新post1.comments [1] .writer像這樣:
post1.comments[1].writer.name = "John"
我希望post1.writer等於「約翰」了。但它不!它仍然等於「比爾」。
所以似乎有一些緩存正在進行,但我不會期望的那種。我希望Rails足夠聰明,能夠加載名爲「Bill」的用戶的一個實例;而是似乎加載兩個單獨的:每個關聯路徑一個。
有人可以解釋這是如何工作的,以及我如何處理這些類型的情況下的「Rails方式」? [編輯]我真的應該使用重載語句來拋棄我的代碼,就像Slobodan的解決方案一樣?
好的。這對我來說是一種痛苦,因爲我是通過事件有條件地更新該名稱的(例如,評論中的before_destroy)。由於這與使用post1.writer的代碼相互分離,我該如何優雅地做到這一點(=不要訴諸我的代碼與reload語句,以防萬一...)? – 2010-05-20 11:40:15
如果您銷燬註釋,只需執行銷燬操作,然後重定向到實際上會重新加載記錄的其他頁面。 – 2010-05-21 05:48:41