我有一個模型Foo
其中:has_many bars
,最初我創建並保存Foo
foo
實例。看着foo.bars
它是空的如預期。但是在創建bar
實例後,belongs
到foo
實例。 foo.bars
不應該是空的,但它仍然是。如果我做Foo.find(foo.id).bars
,它會按預期返回一個非空結果。有沒有辦法update
foo
,這樣我就不必這樣做了。謝謝!更新模型的關聯時,關聯獲取/刪除
0
A
回答
0
問題是foo.bars會被第一次調用緩存。你可以用它來強制刷新使用foo.bars(true)
2
這可能是因爲緩存而發生的。
foo = Foo.create! #=> executes sql, and caches the result
foo #=> retrieved from cache
foo.bars << Bar.create #=> creates the bar, and associates it with the foo instance
foo.bars #=> retrieves the bars from cache, so it's []
Foo.find(foo.id).bars #=> executes sql, and returns [<bar# id: 1>]
要解決這個問題,您只需創建富的新實例,或者只是重新加載它:
foo.reload
或者,foo.bars(true)
。
相關問題
- 1. 獲取Rails模型的關聯關聯
- 2. has_many刪除關聯更新
- 3. 獲取模型的關聯
- 4. 如何獲取與模型關聯模型相關的模型?
- 5. Rails嵌套模型 - 刪除關聯
- 6. 從關聯模型中刪除
- 7. 模型關聯has_and_belongs_to_many刪除對象?
- 8. 刪除主要模型條目時刪除關聯表格行
- 9. 更新軌道中的關聯模型
- 10. 的Rails 3更新關聯模型
- 11. 關聯模型
- 12. 關聯模型
- 13. 從關聯模型獲取數據
- 14. 導軌關聯的5獲取關聯
- 15. Rails關聯 - 級聯更新
- 16. Primefaces TabView按模型 - 刪除與選項卡關聯的模型
- 17. 關於Rails模型關聯
- 18. 更名爲belongs_to關聯,目前找不到關聯的模型
- 19. 休眠刪除關聯表條目時關聯的一個部分被刪除
- 20. 如何在刪除模型後刪除關聯
- 21. 刪除模型對象後如何刪除關聯
- 22. CakePHP模型關聯
- 23. 如何訪問關聯模型的關聯模型?
- 24. Rails模型關聯:兩個模型之間的多個關聯
- 25. Rails - 如何在更新父項時刪除關聯的屬性?
- 26. 通過OneToOneField自定義刪除模型和關聯模型
- 27. 刪除實體時刪除與M:N關係的關聯
- 28. 迭代has_many時通過關聯訪問關聯模型:通過關聯
- 29. Rails - 在has_many模型刪除時設置默認關聯
- 30. Oracle關聯更新