火热的Ajax啊,全世界的程序员都在讨论它(c,c++请飘过),终于我要开始学习啦。
首先是代码重用,rails为了使逻辑和表现分开,采取了一些列的方法,其中之一是,不要把逻辑写在表现页面上。因为,我们要分离拉。局部的代码,就采用partical。如<%= render(:partial =>"cart_item", :collection => cart.items)%>,:partial 的参数所对应的页面就是在参数名前加_.因此对应的页面为_cart_item.html.erb.
修改add_to_cart.html.erb
<table>
<%= render(:partial => "cart_item",:collection => @cart.items)%>
<tr class="total-line">
<td colspan="2">Total</td>
<td class="total-cell"><%= number_to_currency(@cart.total_price) %></td>
</tr>
</table>
由于:partial 所指的为cart_item.因此,编写页面_cart_item.html.erb,:collection嘛意思么
_cart_item.html.erb
<tr>
<td><%=h cart_item.quantity %>×</td>
<td><%=h cart_item.title%></td>
<td class="item-price"><%= number_to_currency(cart_item.price)%>
</tr>
里面的变量名和:partial参数一致
同理,修改layout/store_html.erb页面
<div id="side">
<div id="cart">
<%= render (:partial => "cart",:object => @cart)%> </div>
bject又是嘛意思么,这些个参数,刷新@cart?
然后编写 _cart.html.erb ,用于计算total_price
<div class="cart-title">Your Cart</div>
<table>
<%= render(:partial =>"cart_item", :collection => cart.items)%>
<tr class="total-line">
<td colspan="2">Total</td>
<td class="total-cell"><%= number_to_currency(cart.total_price)%></td>
</tr>
</table>
<%=button_to "Empty Cart", :action =>:empty_cart%>
@cart未定义,所以在store_controller里面
def index
@products = Product.find_products_for_sale
@cart = find_cart
end
然后修改css亦即重定向。即可看到购物车在左边,原来的废掉了。css使购物车放右边,就是平时网页上的购物车了。
ps:partial 如果对应的逻辑页面多,能否写到一个上去,或者有什么方法便于管理多个逻辑页面,不能就这么放在view下吧
接下来是正题,ajax
首先引入rails的js包,layout/store_controller.html.erb导入 <%= javascript_include_tag :defaults%>
然后删除index.html.erb <%=button_to ... %>,改为
<%form_remote_tag :url => {:action => :add_to_cart,:id => product} do%>
<%= submit_tag "Add to Cart"%>
<%end%>
form...tag ,表示要用<form>,remote表示远程调用Ajax。url 服务程序调用地址 do,end form基本格式
然后修改add_to_cart action 如下
else
@cart = find_cart
@cart.add_product(product)
respond_to{|format| format.js}
end
repond_to 根据不同的格式类型采取不同的处理方式。客户端发送给浏览器式,头部Accept-Type: text/xml,指明格式,浏览器根据这个,采取不同的处理方式,未指明,默认text/html。
format.js指向index.rjs
然后编辑view/store/add_to_action.js.rjs。为什么在这个目录?
page.replace_html("cart",:partial => "cart",
bject => @cart)
page,js产生器,page_html()取代
<div id="cart">
<%= render (:partial => "cart",:object => @cart)%>
</div>
参数必须一致
- 大小: 8.2 KB
分享到:
相关推荐
- **AJAX**:学习如何在Ruby on Rails应用中集成异步JavaScript和XML技术。 - **部署、安全与性能**:讲解如何部署Ruby on Rails应用、实施安全措施以及优化性能。 #### 结语 通过这五天的课程,读者不仅能够系统地...
《Ruby on Rails 3 Tutorial》是一本专门为初学者设计的指南,旨在帮助读者快速掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的一个开源框架,它采用MVC(Model-View-...
Ruby on Rails,简称Rails,是一款基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在提升开发效率和代码的可读性。Rails以其“约定优于配置”的设计理念,以及“DRY(Don't Repeat ...
Ruby on Rails 是一个流行的 web 开发框架,以其高效和简洁的代码著称。在 Ruby on Rails 中,页面缓存是一种优化性能的技术,尤其适用于那些内容相对静态或者对用户个性化要求不高的网页。页面缓存的工作原理是将...
Ruby on Rails is the revolutionary online programming tool that makes creating functional e-commerce web sites faster and easier than ever. With the intuitive, straightforward nature of Ruby and the ...
Ajax-rails-ajax-demo.zip,ruby on rails的ajax演示项目,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的...
Ruby on Rails是一种流行的开源网站开发框架,它利用Ruby语言,遵循MVC(模型-视图-控制器)设计原则,用于快速开发数据库驱动的动态网站。本书《Ruby on Rails 实践》是一本指南,旨在向读者介绍Ruby on Rails框架...
Ruby on Rails(简称RoR或Rails)是一种开源的网络应用框架,用Ruby语言编写。它被设计用来轻松地实现MVC(模型-视图-控制器)设计模式,从而使开发人员能够快速和有条理地创建数据驱动的应用程序。接下来,我将详细...
- **Ajax**(Asynchronous JavaScript and XML)与 Ruby on Rails 的结合使得 Web 应用程序具备了更强的交互性和响应速度。通过 Ajax 技术,Rails 应用可以实现实时更新页面内容而无需重新加载整个页面,提升了用户...
### Ruby on Rails企业应用开发详解 #### 一、引言 《Ruby on Rails Enterprise Application Development》这本书由Elliot Smith和Rob Nichols共同编写,由Packt Publishing出版。该书旨在为读者提供一个完整的...
### 敏捷Web开发与Ruby on Rails:深入解析与实践指南 #### 标题解析:“Agile Web Development With Ruby On Rails” 此标题明确指出本书的主题是利用Ruby on Rails框架进行敏捷Web开发。Ruby on Rails(简称...
**标题解析:**“ruby on rails 教程”直指文档内容旨在教授Ruby on Rails框架的基础知识和应用技巧,Ruby on Rails(RoR)是一种用于Web开发的开源框架,基于Ruby语言,它遵循MVC(模型-视图-控制器)架构模式,...
Ruby on Rails,简称Rails,是基于Ruby编程语言的一个开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和代码的可读性。本学习案例将带你深入理解Rails的核心概念和技术,帮助你成为...
**Ruby on Rails 101 知识点详解** Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web开发框架,它遵循“Don't Repeat Yourself”(DRY)原则和“Convention over Configuration”(CoC)理念,使得...
《Ruby on Rails专业指南》是Wrox出版社发布的一本关于Ruby on Rails开发的权威书籍,其源代码在wrox官方网站可以获取。这本书深入浅出地介绍了如何使用Ruby on Rails这一强大的Web开发框架来构建高效、可扩展的Web...
从给定的文件信息来看,我们正在探讨的是一本关于Ruby on Rails的书籍,书名为《Simply Rails2》,作者是Patrick Lenz。本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是...
Learn to build dynamic, interactive web applications using the two most important approaches to web development today: Ajax and the phenomenally efficient Ruby on Rails platform. This book teaches ...
- **受到Ruby on Rails启发**:Prototype库的设计理念受到了Ruby on Rails的影响,追求简洁性和易用性。 #### 六、Prototype 在 Ajax 中的作用 文档中没有给出Prototype在Ajax中的具体角色介绍,但从整体上下文中...
1. **Ruby基础知识**:在深入Rails之前,首先需要理解Ruby的基础语法,包括类、对象、模块、方法、变量和控制结构等。Ruby的元编程能力也是其独特之处,书中可能对此进行了详细介绍。 2. **Rails架构**:Rails遵循...