2
好的,我有一个页面,显示客户他有多少个Widgets。这里的视图(haml):Rails在JavaScript调用后更新DIV(与模型重新加载)
#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中做到这一点。