У меня есть числовые поля и связанные пустые div. Я могу сделать код, который делает это: когда вы увеличиваете или уменьшаете число внутри полей числа и добавляете новые div после пустого div. 1 в поле числа 1 новый div, 2 в поле количества 1 новый div 2 всего divs, 3 в поле количества 1 новый div 3 всего div. и так далее.
Сейчас мой код создает новый пустой div с чем-либо в нем. Но я хочу, чтобы новый div был создан с частичным рубином внутри нового div.
вот демо:
Это то, что я пробовал в файле js.erb
$(document).ready(function() {
$('.product-quantity').each(function() {
$(this).data('val', this.value);
}).on('change', function () {
var val = $(this).val(),
old = $(this).data('val'),
ele = $(this).closest('[id^="product"]').find
('[data-size="'+this.name+'"]'),
inc = val >= old;
if (inc) {
$('<div/>', {
'class': 'name-number-field', 'text':'<%= render :partial =>
'name_number_field', :locals => {:product => product, :size => size} %>'
}).insertAfter(ele);
}else {
$('div.name-number-field', ele.parent()).last().remove();
}
$(this).data('val', this.value);
});
});
Вы можете сделать это в файле js.erb:
$('#yourDiv').html('<%= escape_javascript( render :partial => "name_number_field", :locals => { :product => product, :size => size } )%>');
Я даже не знаю, как и я, но у меня есть идея, что драгоценный камень "кокон" делает именно то, что вы хотите (сделать частичное использование JS), но он требует ассоциации на моделях. Предполагая, что у вас нет ассоциации с моделью, вы просто хотите вставить частичные, Я бы предложил изучить концепцию кокона для идеи и подхода
https://github.com/nathanvda/cocoon/blob/master/lib/cocoon/view_helpers.rb https://github.com/nathanvda/cocoon/blob/master/app/assets/javascripts/cocoon.js