我试图创建用户在其中输入项目对象的名称在文本字段中的视图页面,或jQuery的令牌场(http://loopj.com/jquery-tokeninput/)Rails的动态更新搜索根据用户的输入
每个项目都有一个成本属性,并且我希望在用户添加项目时不显示刷新的情况下显示总成本动态。
所以在页面的顶部会有:
“总成本:$ 150”,或“总费用:$ 120”,如果你删除花费$ 30中的项目。
我觉得它会涉及JavaScript和AJAX,但我不是很熟练。请指教,谢谢!
我试图创建用户在其中输入项目对象的名称在文本字段中的视图页面,或jQuery的令牌场(http://loopj.com/jquery-tokeninput/)Rails的动态更新搜索根据用户的输入
每个项目都有一个成本属性,并且我希望在用户添加项目时不显示刷新的情况下显示总成本动态。
所以在页面的顶部会有:
“总成本:$ 150”,或“总费用:$ 120”,如果你删除花费$ 30中的项目。
我觉得它会涉及JavaScript和AJAX,但我不是很熟练。请指教,谢谢!
确定这是一个复杂的问题,但我会尽力帮助您尽可能我可以,我会sugest首先并称文本字段到一个表单,像这样:
show.html.erb:
<%= form_tag({:controller => "cart_items", :action => :create}, {:method => :post, :remote => true}) do %>
<%= text_field_tag :product_name, product.name %>
<%end%>
通知:远程=>真强迫钢轨做aj斧头通话
后,在你的控制器,你将需要处理该请求,以便将是这样的:
def create
if @current_cart==nil
@current_cart = Cart.create!
@current_cart.save
session[:cart] = @current_cart.id
end
@product = Product.find_by_name(params[:product_name])
@current_cart.add(@product, @product.price)
respond_to do |format|
format.js {redirect_to :back, :notice => "added"}
format.html {redirect_to :back, :notice => "added"}
end
end
后,你将需要一些JavaScript来处理像这样的ajaxt响应:
show.js.erb:
$('.cart').replaceWith('<%= j render :partial => "layouts/cart"%>');
的你需要一个车parcial更换:
个布局/ _cart.html.erb:
<%@current_cart.each do |c| %>
<%=c.product.name%>
<%end%>
IM只是表面上的一个快速的答案,但也许你会找到一些方向 欢呼
对查看相关视图代码感兴趣,但总的来说,您可以将它们加在一起得到总数。
如果你需要得到一个文本字段的值,你可以使用.val()
,并把它转换成int或浮点数你可以使用parseInt(string)
或parseFloat(string)