У меня есть галерея изображений, где пользователь может щелкнуть маленькую букву «х», чтобы заархивировать изображение (т. Е. Отправить его ниже, в галерее). Когда страница загружается, она разделяет изображения на наборы выше и ниже сгиба на основе логического поля в модели базы данных. Когда вы нажимаете «x», jquery вызывает ajax мой бэкэнд, чтобы обновить логический флаг, а затем я использую js, чтобы взять изображение и добавить его в правый раздел (то есть, если вы только что заархивировали его, он идет ниже линии, в противном случае он добавляется в верхний раздел). Все это хорошо работает, но если вы уйдете со страницы, а затем нажмете кнопку «Назад» браузера, чтобы вернуться, изображения отобразятся в своем первоначальном расположении (не «заархивированы» ниже сгиба). Как я могу сделать изменения, сделанные javascript, версией, которая будет сохранена и затем возвращена кнопкой назад?
images_controller.rb
def archive
@image.archived = !@image.archived
@image.save
respond to do |format|
format.js
end
end
галерея html:
<div id="images-active" class="images">
<% @images.each do |img| %>
<%= content_tag_for(:div, active, :class=>"goal_blurb") do %>
<div class="image">
<%= link_to(archive_path(img), :method=>'get', :remote=>true ) do %>
<span class="close">X</span>
<% end %>
<%= image_tag( img.path ) %>
</div>
<%end%>
<% end %>
</div>
<div class="images" id='images-archive'>
<% @arch_images.each do |img| %>
<%= content_tag_for(:div, active, :class=>"goal_blurb") do %>
<div class="image">
<%= link_to(archive_path(img), :method=>'get', :remote=>true ) do %>
<span class="close">X</span>
<% end %>
<%= image_tag( img.path ) %>
</div>
<%end%>
<% end %>
</div>
archive.js.erb
$('#<%= dom_id(@image) %>').fadeOut('slow', function(){
$(this).appendTo('#images-<%=@image.archived ? 'archive':'active'%>').fadeIn('slow');
});