`
black_star
  • 浏览: 34399 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ruby on rails(9) -- AJAX(1)

阅读更多
   火热的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 %>&times;</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
分享到:
评论

相关推荐

    ruby on rails 101

    - **AJAX**:学习如何在Ruby on Rails应用中集成异步JavaScript和XML技术。 - **部署、安全与性能**:讲解如何部署Ruby on Rails应用、实施安全措施以及优化性能。 #### 结语 通过这五天的课程,读者不仅能够系统地...

    ruby on rails 3 tutorial.pdf

    《Ruby on Rails 3 Tutorial》是一本专门为初学者设计的指南,旨在帮助读者快速掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的一个开源框架,它采用MVC(Model-View-...

    Ruby on Rails中文指南

    Ruby on Rails,简称Rails,是一款基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在提升开发效率和代码的可读性。Rails以其“约定优于配置”的设计理念,以及“DRY(Don't Repeat ...

    举例理解Ruby on Rails的页面缓存机制

    Ruby on Rails 是一个流行的 web 开发框架,以其高效和简洁的代码著称。在 Ruby on Rails 中,页面缓存是一种优化性能的技术,尤其适用于那些内容相对静态或者对用户个性化要求不高的网页。页面缓存的工作原理是将...

    Beginning 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

    Ajax-rails-ajax-demo.zip,ruby on rails的ajax演示项目,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的...

    ruby on rails 实践

    Ruby on Rails是一种流行的开源网站开发框架,它利用Ruby语言,遵循MVC(模型-视图-控制器)设计原则,用于快速开发数据库驱动的动态网站。本书《Ruby on Rails 实践》是一本指南,旨在向读者介绍Ruby on Rails框架...

    Ruby+on+Rails快速Web应用开发实战.pdf

    Ruby on Rails(简称RoR或Rails)是一种开源的网络应用框架,用Ruby语言编写。它被设计用来轻松地实现MVC(模型-视图-控制器)设计模式,从而使开发人员能够快速和有条理地创建数据驱动的应用程序。接下来,我将详细...

    SOA系列:开源框架Ruby on Rails

    - **Ajax**(Asynchronous JavaScript and XML)与 Ruby on Rails 的结合使得 Web 应用程序具备了更强的交互性和响应速度。通过 Ajax 技术,Rails 应用可以实现实时更新页面内容而无需重新加载整个页面,提升了用户...

    Ruby.on.Rails.Enterprise.Application.Development

    ### Ruby on Rails企业应用开发详解 #### 一、引言 《Ruby on Rails Enterprise Application Development》这本书由Elliot Smith和Rob Nichols共同编写,由Packt Publishing出版。该书旨在为读者提供一个完整的...

    Agile Web Development With Ruby On Rails

    ### 敏捷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框架的基础知识和应用技巧,Ruby on Rails(RoR)是一种用于Web开发的开源框架,基于Ruby语言,它遵循MVC(模型-视图-控制器)架构模式,...

    Ruby on Rails 学习案例

    Ruby on Rails,简称Rails,是基于Ruby编程语言的一个开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和代码的可读性。本学习案例将带你深入理解Rails的核心概念和技术,帮助你成为...

    Ruby-on-Rails-101:Ruby on Rails 笔记摘自 WDI HKV 和其他来源。 比如,lynda的在线Rails教程

    **Ruby on Rails 101 知识点详解** Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web开发框架,它遵循“Don't Repeat Yourself”(DRY)原则和“Convention over Configuration”(CoC)理念,使得...

    wrox Professional Ruby on Rails_code.zip

    《Ruby on Rails专业指南》是Wrox出版社发布的一本关于Ruby on Rails开发的权威书籍,其源代码在wrox官方网站可以获取。这本书深入浅出地介绍了如何使用Ruby on Rails这一强大的Web开发框架来构建高效、可扩展的Web...

    rails2-sample

    从给定的文件信息来看,我们正在探讨的是一本关于Ruby on Rails的书籍,书名为《Simply Rails2》,作者是Patrick Lenz。本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是...

    Ajax 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 ...

    Ajax on Rails (PPT)

    - **受到Ruby on Rails启发**:Prototype库的设计理念受到了Ruby on Rails的影响,追求简洁性和易用性。 #### 六、Prototype 在 Ajax 中的作用 文档中没有给出Prototype在Ajax中的具体角色介绍,但从整体上下文中...

    Wrox - Professional Ruby on Rails (Feb 2008)

    1. **Ruby基础知识**:在深入Rails之前,首先需要理解Ruby的基础语法,包括类、对象、模块、方法、变量和控制结构等。Ruby的元编程能力也是其独特之处,书中可能对此进行了详细介绍。 2. **Rails架构**:Rails遵循...

Global site tag (gtag.js) - Google Analytics