これに1日を費やしました。
私は持っている
class Box
has_many :users, :through => :subscriptions
end
また、複数の INSERT を使用してジョブをすばやく実行するカスタムメソッドinsert_new_users
とメソッドもあります。associate_with(new_users)
とにかく、彼らはうまくいきます。「associate_with」メソッドの最後に次の行もあります。
def associate_with
# mysql INSERT here
self.users(true) # Should force reload
end
テスト環境 (コントローラーとモデル テストの両方) で実行すると期待どおりに動作し、true
引数を削除すると期待どおりに失敗し、リロードが強制されます。モデルscript/console
なら開発中からでも動作します。しかし、コントローラーからupdate_attributes
しようとすると、開発または生産に失敗します。update_attributes
関連付けをリロードしないだけで、このクエリの「CACHE (0.0ms)」と表示されているログで確認できます。
奇妙なことに、以前は機能していましたが、何らかの理由で機能しなくなった瞬間を特定できません。誰かがこれがどのように可能であるかを知っているのではないかと思っていました。