Formulário Rails4 de preenchimento automático com várias entradas - elemento de identificação de dados HTML substituído
Estou tentando criar um formulário que sugira o nome do medicamento no banco de dados, mas enviará a ID do medicamento escolhido para criar uma relação no meu banco de dados.
Eu usei a gema de preenchimento automático, que funciona muito bem, também usei a dica para obter o ID do nome dos elementos e isso funciona bem, mas apenas até o ponto em que há um elemento ONE INPUT no formulário. No meu caso, preciso de 5 entradas e, por causa do meu código - ele continua substituindo o elemento chamadomy_medicine_id
o que faz com que apenas um - último - elemento esteja sendo salvo. Vocês podem pensar em alguma solução para alterar dinamicamente o nome do campo?
Minhas prescrições
[...]
def new
@prescription =Prescription.new
5.times { @prescription.relations.build }
end
[...]
Minha visão
[...]
<ol>
<%= f.fields_for :relations do |builder| %>
<%= builder.hidden_field :medicine_id, :id => "my_medicine_id" %>
<%= builder.autocomplete_field :medicine_name, autocomplete_medicine_name_relations_path, :id_element => '#my_medicine_id' %>
<% end %>
</ol>
[...]
gera html final:
<input id="my_medicine_id" type="hidden" rows="5" name="prescription[relations_attributes][0][medicine_id]"></input>
<input id="prescription_relations_attributes_0_medicine_name" type="text" rows="5" name="prescription[relations_attributes][0][medicine_name]" data-id-element="#my_medicine_id" data-autocomplete="/relations/autocomplete_medicine_name"></input>
<input id="my_medicine_id" type="hidden" rows="5" name="prescription[relations_attributes][1][medicine_id]"></input>
<input id="prescription_relations_attributes_1_medicine_name" type="text" rows="5" name="prescription[relations_attributes][1][medicine_name]" data-id-element="#my_medicine_id" data-autocomplete="/relations/autocomplete_medicine_name"></input>
<input id="my_medicine_id" type="hidden" rows="5" name="prescription[relations_attributes][2][medicine_id]"></input>
<input id="prescription_relations_attributes_2_medicine_name" type="text" rows="5" name="prescription[relations_attributes][2][medicine_name]" data-id-element="#my_medicine_id" data-autocomplete="/relations/autocomplete_medicine_name"></input>
<input id="my_medicine_id" type="hidden" rows="5" name="prescription[relations_attributes][3][medicine_id]"></input>
<input id="prescription_relations_attributes_3_medicine_name" type="text" rows="5" name="prescription[relations_attributes][3][medicine_name]" data-id-element="#my_medicine_id" data-autocomplete="/relations/autocomplete_medicine_name"></input>
<input id="my_medicine_id" type="hidden" rows="5" name="prescription[relations_attributes][4][medicine_id]"></input>
<input id="prescription_relations_attributes_4_medicine_name" type="text" rows="5" name="prescription[relations_attributes][4][medicine_name]" data-id-element="#my_medicine_id" data-autocomplete="/relations/autocomplete_medicine_name"></input>
Então, como você pode ver cada vez que substitui o elementodata-id-element="#my_medicine_id"
.