Ruby on Rails 中应用Ajax

Rails为Ajax的使用提供了相当简单的方法,见过实验一下代码有效。仅记备忘。

详细理论见《Web开发敏捷之道-应用Rails进行敏捷开发(第三版)》 Page 95 ~ 97

我的RoR环境如下:
Rails 2.3.14
Ruby 1.8.7  


一、替换button_to生成代码的post形式

depot\app\views\store\index.html.erb

<% form_remote_tag :url => {:action => 'add_to_cart', :id => product} do%>
	<%= submit_tag "Add to cart"%>
<%end%>

二、add_to_cart方法做出改变发送ajax请求

\depot\app\controllers\store_controller.rb

def add_to_cart
    product = Product.find(params[:id])
    @cart = find_cart
    @cart.add_product(product)
    respond_to do |format|
      format.js
    end
    rescue ActiveRecord::RecordNotFound
      logger.error("Error #{params[:id]}")
      redirect_to_index "Error"
  end
三、添加Ajax支持

depot\app\views\layouts\store.html.erb

<head>
	<title>XXXX Book Store</title>
	<link rel="stylesheet" href="http://twitter.github.com/bootstrap/1.4.0/bootstrap.css">
	<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/docs.css">
	<%= javascript_include_tag :defaults %>
</head>
四、添加js响应

depot\app\views\store\add_to_cart.js.rjs

page.replace_html("cart", :partial=>"cart", :object=>@cart)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值