Итак, я хочу иметь кнопку для добавления дополнительных полей в форму. Скажем, у меня есть это:
<div class="row">
<div class="form-group string required">
<div class="cep_filter">
<div class="col-md-3 traffic-columns">
<%= f.input :condition, collection: @traffic_columns, label: "Monitor (*)" %>
</div>
<div class="col-md-1">
<%= f.input :operator, collection: @operator, label: "Op (*)" %>
</div>
<div class="col-md-2">
<%= f.input :filter, label: "Value (*)",input_html: {type: "text" } %>
</div>
</div>
<div class="col-md-3">
<%= f.input :window, collection: @window, label: "Window Type", input_html: {type: "text"} %>
</div>
<div class="col-md-3">
<%= f.input :window2, label: "Window Value", input_html: {type: "text"} %>
</div>
</div>
</div>
Затем, предположим, у меня есть такая кнопка:
<%= link_to content_tag(:i, nil, class: "fa fa-plus"),
'', style: 'color: green', class: "btn btn-small add-new-condition", 'data-backdrop' => "static" %>
Я хочу сделать следующее: когда вы нажимаете эту кнопку, вы вызываете это:
$(document).on("click", ".add-new-condition", function(e) {
var html =
"<div class='col-md-3 traffic-columns'> \
<%= f.input :new_param, collection: @traffic_columns, label: 'Monitor (*)' %>\
</div>
"
});
, а затем добавьте это html к некоторому элементу div. Из того, что я читал, невозможно ввести ruby из javascript. Это что-то связано с тем, что одна сторона сервера, а другая - клиентская. Я уже пробовал, и код ruby отображается в виде строки. Я мог бы создать эти новые поля, используя чистый html, вроде и так, но здесь важно то, что я хочу добавить новые поля, к которым позже я могу получить доступ в контроллере, например новое поле, с params[:new_param]
.
Есть ли способ добавить новые поля только с помощью html, чтобы я мог позже получить доступ к введенному значению в моем контроллере rails? Спасибо.