Considere este fragmento de código:
<%= form_for @survey do |f| %> <%= f.error_messages %> <p> <%= f.label :name %><br /> <%= f.text_field :name %> </p> <%= f.fields_for :questions do |builder| %> <%= render "question_fields", :f => builder %> <% end %> <p><%= f.submit "Submit" %></p> <% end %>me devolverá algo de hash (el desarrollador de Rails lo sabría). Mi pregunta es ¿cómo puedo hacer este formato en ReactJS? Para recibir exactamente los mismos parámetros que Rails realiza por defecto. Por ahora solo puedo usar la etiqueta HTML en JSX. Actualmente recibo parámetros en el controlador y los clasifico según las necesidades (lo que parece un mal enfoque). ¡He probado algunos de los paquetes npm pero sus documentos no parecen ayudar! que incluyen: https://www.npmjs.com/package/react-rails-form-helpers
https://www.npmjs.com/package/react-form
¿Hay algún paquete npm para esto? Usando la gema react_on_rails con Rails 5 estable
Terminé con entradas escritas manualmente, sin control desde el punto de vista de reactjs.
<input type="text" name={`listing[working_time_slots_attributes][${value}][from]`} defaultValue={timeSlot.from} />Y axios, forma-serializar npm.
import axios from 'axios'; import serialize from 'form-serialize'; handleSubmit(event) { event.preventDefault(); const formData = serialize(event.target, { hash: true }); // alert(`A data was submitted: ${JSON.stringify(formData, null, 2)}`); axios.post(`/api/listings/${this.props.listing.id}/update_working_time_slots`, formData) .then((response) => { this.setState({ timeSlots: response.data.working_time_slots }); // eslint-disable-line react/no-set-state console.log(response); // eslint-disable-line no-console }) .catch((error) => { console.log(error); // eslint-disable-line no-console }); }