foo
というFoo
インスタンスを最初に作成して保存するモデルはFoo
です。:has_many bars
です。 foo.bars
を見ると、期待通りに空です。しかし、bar
インスタンスを作成した後はから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の新しいインスタンスを作成するか、またはそれをリロードします。
foo.reload
または、foo.bars(true)
。
関連する問題
- 1. モデルを削除した後の関連付けを削除する方法
- 2. 関連するエンティティの追加、削除、および更新
- 3. アソシエーションの関連付けを続ける
- 4. Railsネストされたモデル - アソシエーションを削除する
- 5. ライブラリモデルに新しい関連付けを追加する方法
- 6. アソシエーションを追加/削除するためのRailsフォーム
- 7. CakePHP 2.0ページネーションとサムの関連付け関連するモデル
- 8. アップロードされた画像をモデルに関連付ける方法
- 9. Ember.jsとRailsモデルの関連付け
- 10. モデルの関連付けとデータモデリング
- 11. has_manyとの関連付けの作成または更新
- 12. モデルを保存する前に追加のアソシエーション属性を更新する
- 13. 関連する* .pyファイルが削除されたときに* .pycファイルが削除される理由
- 14. angularjs要素が追加/削除されたときにng-repeatリストが更新されない
- 15. Kohana 3関連エントリーの更新/追加
- 16. CakePHPモデルの関連付けテーブル(データと新しいテーブル)
- 17. データベース設計:アソシエーションの関連付けを作成する
- 18. 最後のhas_many:throughレコードが削除されたあとの関連付けを破棄します。
- 19. OneToOneFieldでモデルと関連モデルを削除するカスタム
- 20. ExtJS 4では、ノードに関連付けられたグリッド情報がランダムに削除されたときにツリーノードを削除する方法
- 21. モデルの関連付けを取得
- 22. 関連付けられたテーブルからレコードを削除するPHP
- 23. 別のコントローラに関連付けられたモデルを表示
- 24. モデル内の複数の関連付け
- 25. 更新エントリの合計カウントajaxでの追加、削除、更新
- 26. モデルが変更されたときのビューの更新
- 27. has_manyとbelongs_toのRailsモデルの関連付けを作成する
- 28. 関連付けられたhas_manyモデルのフォームの作成
- 29. アイテムがモデルから削除されたときにフォーム検証が更新されません。バグ?
- 30. カテゴリに関連付ける追加のセカンダリイメージを追加します