Dylan Thacker-Smith
Dylan Thacker-Smith
Ignore the CI / Rails edge failure, since #518 will address that.
If you still want to remove `:idc_cached_nil`, then you could replace `cache.read` with `cache.read_multi` for a single key. Otherwise, we could just close this issue now that we are supporting...
Closing since this PR is proposing to fix this at the wrong level. We don't want to diverge from active record's behaviour.
Once the behaviour changes in Rails, then won't it no longer be necessary to rescue the range error? E.g. would `Topic.where(id: 9223372036854775808).to_a` return `[]`? I would think that by addressing...
Note that any fix to identity cache will be limited to singular fetch APIs. E.g. `fetch_multi` takes multiple ids, so there isn't an easy way to rescue the RangeError and...
If we could check for the type being out of range, then that would allow us to easily filter out ids that are out of range in a method like...
That's great! I think it would make sense to update the README to link to different backends and stop making it sounds like the gem only works with identity cache....
Your example in the ancestor-invalidation-failing branch uses `Item.cache_has_many(:associated_records)` but the default is `embed: :ids` for `cache_has_many`. Of course, this is confusing given that the default for `cache_has_one` is `embed: true`
Oh, that sounds like it could be an issue with the lazy expiration hook installation. Maybe that isn't working properly for deeply embedded associations
I don't think we need to load everything, since parent expiration is only needed for has_one and has_many connections, which requires a corresponding belongs_to association. So only the belongs_to associations...