Доброго времени суток.
Есть сайт, написанный на Ruby, в котором очень много костылей(4 фрилансера работало над сайтом). Проблема заключается в том, что при увеличении количества товара в корзине происходит автоматическое схлопывание таблицы и обнуление доставки.
Вопрос: где происходит неправильная обработка, на стороне сервера или юзера?
Javascript
var postQuantity = Restangular.all('api/quantity.json');
$scope.plusQuantity = function(id, type) {
$scope.quantityPromise = postQuantity.post({id: id, type: type, method: 'plus'}).then(
function(success) {
// refresher_cart_stat();
$scope.getCart();
},
function(data) { if (debug) { console.log("ERROR_ID75343354", data); if (is_safari) { alert('ERROR_ID93487534'); location.reload(); } } }
);
};
$scope.minusQuantity = function(id, type) {
$scope.quantityPromise = postQuantity.post({id: id, type: type, method: 'minus'}).then(
function(success) {
// refresher_cart_stat();
$scope.getCart();
},
function(data) { if (debug) { console.log("ERROR_ID85844445", data); if (is_safari) { alert('ERROR_ID84930584'); location.reload(); } } }
);
};
Ruby
get :add, :map => '/add-to-cart/:id' do
type = params[:type].present? ? params[:type] : "standard"
curr_item = { "id" => params[:id], "quantity" => params[:quantity], "type" => type }
if session[:cart].nil?
cart = Array.new()
else
cart = session[:cart]
end
incart = false
cart.each_with_index do |item, index|
if item["id"] == curr_item["id"] && (item["type"] == curr_item["type"] || (item["type"].blank? && curr_item["type"] == "standart" ))
cart[index]["quantity"] = (cart[index]["quantity"].to_i + curr_item["quantity"].to_i).to_s
incart = true
end
end
if incart
session[:cart] = cart
else
session[:cart] = cart.push(curr_item)
end
#redirect(back, :notice => 'Товар добавлен в корзину.')
erb 'SUCCESS!'
end