Я пытался удалить элемент заказа из представления корзины с помощью Ajax ... На данный момент, если я нажимаю кнопку Удалить, элемент заказа удаляется из базы данных, но не из представления, и мой код ниже делаетне работает (у меня очень мало понимания ajax / jquery, поэтому, возможно, поможет более подробное объяснение):
controller.rb:
def destroy
@order_line.destroy
respond_to do |format|
format.html { redirect_to :action => "show", :id => current_order_id }
format.js
end
if last_order_item?(@order)
@order.destroy
redirect_to books_url
end
end
view.html.erb:
<% @order.order_lines.order(:book_id).each do |line| %>
<div class="order_line_row" id = "orderline-<%= line.id%>">
<div class="book_details">
<% if File.file?("#{Rails.root}/app/assets/images/#{line.book.image}") %>
<%= image_tag line.book.image, class: "card-img-top", alt: "test image" %>
<% else %>
<%= image_tag "images.jpeg", class: "card-img-top", alt: "test image" %>
<% end %>
<h5 class="product-name"><%= line.book.title %></h5>
<%= link_to 'Delete book', order_line_path(line.id), method: :delete, remote: true, class: "btn btn-primary" %>
</div>
<div class="quantity">
<%= form_for(line) do |f| %>
<%= f.label :qty %></br>
<%= f.number_field :qty, in: 1...line.book.stock %>
<%= f.submit "Update", class: "btn btn-primary" %>
<% end %>
</div>
<div class="price">Price</br><%= line.subtotal_price %></div>
</div>
<hr>
<% end %>
destroy.js.rb:
$(document).ready(function(){
$('#orderline-<%= @line.id %>').remove();
})
Спасибо за ваше время ...