этот блок
<div id='travels' class='tableize'>
<%= render @travels %>
</div>
затем отправляется для визуализации через _travel.html.erb
частичную следующую форму и результат для каждой записи @ travels
<div class='small-2 medium-2 large-2 columns text-right'>
<%= form_with(model: travel, remote: true, data: {'js-travel-form' => true, method: :patch}, url: restriction_update_travels_path, data: {'js-travel-form' => true}) do |form| %>
<%= form.hidden_field :id, value: travel.id %>
<%= form.submit ' Change' %>
<% end %>
</div>
<div class='small-2 medium-2 large-2 columns' data-js-travelstatus=<%= travel.id %>>
<% if travel.restricted %>
<%= fa_icon('ban', class: 'fa-lg smaller warning') %>
<% end %>
</div>
Контроллер обновляет состояние и отправляет
@travel = Travel.find(params[:travel][:id])
if @travel.restricted.nil? || !@travel.restricted?
@travel.update_attributes(restricted: true)
else
@travel.update_attributes(restricted: false)
end
if @travel.save
render partial: 'travelstatus'
end
где restriction_update.js.erb
генерирует следующие js
$("#data-js-travelstatus").replaceWith("<%= j(render @travelstatus) %>");
сделать с помощью _travelstatus.html.erb
<% if @travel.restricted %>
good <%= fa_icon('ban', class: 'fa-lg smaller warning') %>
<% end %>
Сетевая консоль инструмента разработчика браузера принимает действие и возвращает в качестве ответа
good
но
- больше нет html согласно частичному html.erb, что странно, потому что, если я заменю переменную экземпляра @travel на
travel
, она вернет ожидаемую ошибку rails papyrus
- и статусная ситуация не обновляется (в обоих случаях - в режиме false) ... даже в «хорошей» необработанной строке.
рельсы 5.2.4, но с вызовом jquery-ujs
где это пошло не так?