好的,我有一个页面显示客户他有多少小部件。这是视图(haml):
#available
= "Available widgets: #{@customer.widgets.unused.count()}"
(“未使用”是模型中显示可用小部件的范围)。
当客户使用带有“:remote => true”的表单兑换小部件时,一些javascript会在页面上放置一个带有动画的漂亮DIV,并且控制器会更新模型。
这是控制器:
def redeem
@customer = Customer.find(params[:customer_id])
number = params[:amount].to_i
unless @customer.widgets.unused.empty?
number.times do
@customer = Customer.find(params[:customer_id])
widget = @customer.widgets.unused.first # Grab first unused pass
widget.status = "Redeemed"
widget.save!
end
else
@pay = "true"
# customer.widgets.new
end
# redirect_to @customer
end
这是javascript(js.erb):
var number = <%= params[:amount] %>;
<% if @pay.eql? "true" %>
$("#widget-pay").modal('toggle');
<% else %>
while (number > 0) {
var item = $('<div class="widget-show">...</div>');
$('#allwidgets').isotope('insert', item);
number --;
}
<% end %>
我的问题是我现在想用新的小部件计数更新“#available”DIV。我该怎么做呢?
在最坏的情况下,我可以重新加载页面,以便再次从模型中提取数据,充其量只是更新 DIV。我似乎无法从 javascript 中做到这一点。