Fix ingredient editor nested attributes index collision#3798
Merged
Conversation
cc21d4e to
97b06d1
Compare
The form_field_counter method used the ingredient's position in the YAML element definition to generate the nested attributes index. This caused collisions where two ingredients could end up with the same index, corrupting form data on save. Use the ingredient's database ID as the nested attributes key instead. Rails accepts_nested_attributes_for does not require sequential indices, it only needs unique keys to group fields for each record. Since each ingredient has a unique ID, this eliminates any possibility of collision. Signed-off-by: Thomas von Deyen <vondeyen@blish.cloud>
97b06d1 to
31fabf1
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3798 +/- ##
=======================================
Coverage 97.48% 97.48%
=======================================
Files 320 320
Lines 8497 8497
=======================================
Hits 8283 8283
Misses 214 214 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
💚 All backports created successfully
Questions ?Please refer to the Backport tool documentation and see the Github Action logs for details |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What is this pull request for?
The
form_field_countermethod used the ingredient's position in the YAML element definition to generate the nested attributes index. This caused collisions where two ingredients could end up with the same index, corrupting form data on save.Use the ingredient's database ID as the nested attributes key instead. Rails
accepts_nested_attributes_fordoes not require sequential indices, it only needs unique keys to group fields for each record. Since each ingredient has a unique ID, this eliminates any possibility of collision.Checklist