I got a problem with nested form. My controller is:
def new
@encomenda = Encomenda.new
@encomenda.encomenda_produtos.build
respond_to do |format|
format.html # new.html.erb
format.json { render json: @encomenda }
end
end
My view is:
<ul id="invitelist">
<li>
<%= f.fields_for :encomenda_produtos do |a| %>
<%= a.label :id_produto, t("activerecord.attributes.encomenda_produto.produto", :default => "Produto"), :class => :label %>
<%= a.collection_select :id_produto, Produto.order('nome_produto'), :id_produto, :id_produto, :class => 'collection_select_field' %>
<br><br>
<% end %>
</li>
</ul>
And the Javascript is:
<script>
$(document).ready(function() {
$('#botao_novo_produto').click(function() {
if ($('#invitelist li').length < 7)
$('#invitelist li:last').clone().find('input').val('')
.end().appendTo('#invitelist');
else
alert('Número máximo de produtos')
});
$('#botao_remove_produto').click(function() {
if ($('#invitelist li').length > 1)
$('#invitelist li:last').remove();
else
alert('Uma encomenda deve conter ao menos 1 produto.')
});
});
</script>
My problem here is that I need to add '@encomenda.encomenda_produtos.build' every new item (product) I added in my view. If I use something like '3.times @encomenda.encomenda_produtos.build' it works well. So, what should I do to have a dynamic form that I could add as many products I want?
Thanks all!