Rake chewy:sync should work for complex "outdated_sync_field" values
lfv89 opened this issue · 2 comments
lfv89 commented
Expected behavior
If an outdated_sync_field
do not have a simple value, it should still be possible to use chewy:sync
on that index.
Actual behavior
If one defines an index with an updated_at
similar to this one:
field :updated_at, type: :date, value: ->(obj) do
[obj.updated_at, obj.obj2.updated_at].compact.max
end
Then chewy:sync
will fail because inside supports_outdated_sync?
:
def supports_outdated_sync?
updated_at_field = root.child_hash[outdated_sync_field] if outdated_sync_field
!!updated_at_field && updated_at_field.value.nil?
end
The condition updated_at_field.value.nil?
will always be false since a proc is being used.
Steps to reproduce the problem
Run rake chewy:sync
on a index that defines the value of updated_at
as a proc.
Version Information
Share here essential version information such as:
- Chewy version 7.3.4
- Elasticsearch version
- Ruby version 3.3
- Rails version 7.0
lfv89 commented
I would gladly jump on this if a maintainer could give me a few pointers to start with.
lfv89 commented