如果在js.erb中确认

时间:2013-03-20 23:34:59

标签: javascript ruby-on-rails ruby ruby-on-rails-3 erb

我需要这样的工作:

Show.erb.js:

if (confirm('Delete cart?')) { 
  <%@current_cart.reset%>
  $('.cartbadge').replaceWith('<%= j render :partial => "layouts/cartbadge"%>');
}

但代码的erb部分始终是正常的

任何想法?

1 个答案:

答案 0 :(得分:3)

因为在解释erb时将执行代码<%@current_cart.reset%>

你必须使用ajax,如:

if (confirm('Delete cart?')) { 
  $.post('<%= reset_cart_path(@current_cart) %>', function() {
      $('.cartbadge').replaceWith('<%= j render :partial => "layouts/cartbadge"%>');
  });
}