частичный рендеринг рельсов в js.erb без перезагрузки всей страницы

У меня есть часть на моей странице, которая загружается, когда я загружаю страницу. Частичное вызывается таким образом при загрузке.

<%= f.simple_fields_for :application_attachments do |attachment| %>
        <%= render "attachment_fields", {:f => attachment, :instalment => true, :type => 'application_assignment'} %>
      <% end %>

Затем я запускаю некоторую функцию, которая изменяет значения ассоциации application_attachments, и мне нужно перезагрузить только этот раздел и отобразить последнюю информацию.

Мой метод, который обновляет значения, имеет файл js.erb, который я пытаюсь обновить и отобразить частично, как это

generate_attachment.js.erb

    <% form_for @application do |f| %>
        <%= f.fields_for :application_attachments do |attachment| %>
            $("<%= escape_javascript render(partial: 'attachment_fields', locals: {f: attachment}, :instalment => true, :type => 'application_assignment') %>")
                .appendTo($("#application-attachments-#{@rand_value}"));
        <% end %>
    <% end %>

В основном я просто пытаюсь повторно отобразить часть, которая отображает частичное и обновить значения, но это не работает.

Я не уверен, что еще делать или как частично обновить только необходимый div с последним html. Любые советы или варианты приветствуются


person Kingsley Simon    schedule 28.09.2017    source источник


Ответы (1)


попробуй это:

1- сделать партиал для этого: (_custom_partial.html.erb)

<%= f.simple_fields_for :fields_for_param do |attachment| %>
  <%= render "attachment_fields", {:f => attachment, :instalment =>
 true, :type => 'application_assignment'} %> 
<% end %>

2-страничная структура должна быть такой:

<% form_for @application do |f| %>
 <div id="my_id">
  <%= render partial: 'custom_partial', locals: {fields_for_param: 
   application_attachments}%>
 </div>
<% end %>

3- в файле js.erb перезагружать только my_id div с изменяемым содержимым, например

$('#my_id').html('<%= j render 'custom_partial', locals: {fields_for_param: your_changebale_variable}%>');

вы можете изменить этот код по своему усмотрению. надеюсь, это сработает. спасибо

person Anand    schedule 28.09.2017
comment
одна большая проблема с этой реализацией @anand заключается в том, что насчет простого объекта поля f? для js erb и структуры страницы, откуда я могу передать f? - person Kingsley Simon; 04.10.2017