Я это рельсы помощника _fields_answer.html.erb
Сформировать уникальный идентификатор в рельсах помощника
<fieldset>
<div class="row">
<div class="col-xs-9">
<%= answerf.text_area :content, placeholder: "Answer", class: "form-control" %>
</div>
<%= answerf.hidden_field :question_number, value: qn %>
<div class="col-xs-2 buttonProjDel">
<%= answerf.hidden_field :_destroy %>
<%= link_to "remove", '#', class: "remove_fields btn btn-danger btn-xs buttonProjDelBut" %>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<% st = Time.now.strftime("%I%M%S%p") %>
<%= answerf.text_field :scale, id: 'slf'+st , type: 'text',
data: {'slider-id' => 'scale',
'slider-min' => '0',
'slider-max' => '10',
'slider-step' => '1',
'slider-value' => '5' } %>
</div>
</div>
<script>
$('<%= '#slf'+st %>').slider()
</script>
</fieldset>
И я сделать этот помощник динамически, но я просто не могу иметь ползунок в первой. Поэтому я старался иметь разные Id
для каждого, но я не могу этого сделать. С кодом выше я всегда получаю то же самое Id
, даже используя Time
.
Почему время используется в id
всегда то же самое?
Есть ли другой способ сделать это? Я хочу иметь слайд для каждого ответа.
Edit:
Код, который делает помощника: В projects.js.coffee
$(document).on 'click', 'form .add_fields', (event) ->
time = new Date().getTime()
regexp = new RegExp($(this).data('id'), 'g')
$(this).before($(this).data('fields').replace(regexp, time))
event.preventDefault()
В application_helper.rb
def link_to_add_fields(name, f, association, locals)
new_object = f.object.send(association).klass.new
id = new_object.object_id
fields = f.fields_for(association, new_object, child_index: id) do |builder|
render("fields_" + association.to_s.singularize, answerf: builder, qn: locals[:qn])
end
link_to(name, '#', class: "add_fields " + locals[:class], data: {id: id, fields: fields.gsub("\n", "")})
end
Спасибо @vee Я тоже пробовал с классом, но у меня тот же результат, он просто работает для первого слайда. Это странно, потому что все они имеют один и тот же класс. Любая другая идея? – Mario
Я вижу кнопки удаления, я предполагаю, что у вас есть плюс кнопка где-то на скрытой странице. Вы генерируете эти текстовые поля, используя javascript? – vee
Да, я использую jQuery. Я уточнил вопрос, с более подробной информацией. Вывод, который использует помощник, находится в файле application_helper и работает с кодом jQuery, который я разместил выше. – Mario