Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unique Identifiers for Nested Form Fields to Prevent Data Overwrite #20

Open
Arzamendiaariel opened this issue Mar 20, 2024 · 1 comment

Comments

@Arzamendiaariel
Copy link

Arzamendiaariel commented Mar 20, 2024

When using the stimulus-rails-nested-form library to dynamically add nested form fields, it has been observed that if the "add" action is triggered multiple times, the newly added input fields end up having the same name attribute value. This behavior results in only the last input's data being submitted, as the preceding input values are overwritten due to the shared name attribute among them. This issue fundamentally affects the form's ability to correctly handle multiple nested records, leading to data loss and inconsistent submissions.

I propose modifying the nested form field addition process to include a unique identifier within each name attribute of newly added input fields. This can be achieved by appending a timestamp or a sequentially incremented value to the name attribute, ensuring its uniqueness across the form. I have prepared a pull request that implements this solution by extending the current functionality of the stimulus-rails-nested-form library's controller to include this adjustment.

I''ll send a PR

@searls
Copy link

searls commented Apr 7, 2024

Is it possible you're using this component to render multiple nested fields on a single model? This component is designed to be used across an association boundary with fields_for/accepts_nested_attributes, such that (for each associated model) the attribute names don't change (and Rails generates unique name="blah_attributes[1]name" sort of attributes for each that are unique to the name and index of the associated model)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants