`

在学习<应用Rails进行敏捷Web开发>遇到问题

阅读更多
在学习第八章 迭代C2 :创建购物车 遇到如下问题
引用
NoMethodError in StoreController#add_to_cart

undefined method `product' for #<Product:0x4a02900>

RAILS_ROOT: ./script/../config/..

D:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1860:in `method_missing'
#{RAILS_ROOT}/app/models/cart.rb:16:in `add_product'
#{RAILS_ROOT}/app/models/cart.rb:16:in `each'
#{RAILS_ROOT}/app/models/cart.rb:16:in `find'
#{RAILS_ROOT}/app/models/cart.rb:16:in `add_product'
#{RAILS_ROOT}/app/controllers/store_controller.rb:11:in `add_to_cart'

我的cart.rb 文件代码如下

class Cart
 
 attr_reader :items
 
 def initialize
  @items = []
 end

 def add_product(product)
  current_item = @items.find {|item| item.product == product}
  if current_item
  current_item.increment_quantity
  else
  @items << CartItem.new(product)
  end
 end 
end


store_controller.rb代码如下
class StoreController < ApplicationController
 
 def index
  @products = Product.find_products_for_sale
 end
 
 def add_to_cart
  @cart = find_cart       
  product = Product.find(params[:id])
  @cart.add_product(product)    
 end

 private
 
 def find_cart
  session[:cart] ||= Cart.new
 end 
end


提示是找到不到items[]数据中的product方法,
也就是这一句上,
current_item = @items.find {|item| item.product == product}

一直都找不原因
分享到:
评论
1 楼 poshboytl 2008-06-10  
问题应该出在session中
由于迭代前session中存放的是product
而迭代后是存放的cartitem
而session中的数据没有得到及时的更新

清空一下以前的session应该就可以了

rake db:sessions:clear

相关推荐

    源代码 for web开发敏捷之道:应用rails进行敏捷web开发(原书第4版)

    《源代码 for web开发敏捷之道:应用Rails进行敏捷Web开发(原书第4版)》是一本关于使用Ruby on Rails框架进行高效、敏捷Web开发的实践指南。此资源包含了书中所涉及的源代码,适用于对Rails 3.0、3.1、3.2版本的学习...

    Web开发敏捷之道-应用Rails进行敏捷Web开发(第三版)

    在演示的过程中,作者真实地再现了一个完整的迭代式开发过程,让读者亲身体验实际应用开发中遇到的各种问题、以及Rails如何有效解决这些问题。在随后的“Rails框架”部分中,作者深入介绍了Rails框架的各个组成部分...

    基于Rails的敏捷Web开发

    基于Rails的敏捷Web开发,就是在Rails框架基础上实施敏捷开发策略,缩短开发周期,快速响应变化。 在敏捷Web开发中,有几个核心概念需要掌握: 1. Scrum框架:敏捷开发中最常用的框架之一,它通过规定一系列的角色...

    Agile Web Development with Rails

    ### 敏捷Web开发与Rails框架 #### 一、Rails版本的重要性及兼容性问题 《敏捷Web开发与Rails》这本书是专门为Rails 2版本而编写的。在本书出版时,最新的稳定版本为Rails 2.2.2,所有的代码示例和教程都经过了这个...

    Web开发敏捷之道第三版(中文版).pdf

    综上所述,《Web开发敏捷之道第三版》这本书全面涵盖了使用Ruby on Rails框架进行Web开发的各个方面,不仅适合初学者入门,也适合有一定经验的开发者深入学习。通过实践示例项目Depot的应用程序,读者可以循序渐进地...

    Agile Web Development with Rails, Third Edition

    《敏捷Web开发与Rails》第三版是一本深受开发者欢迎的指南,主要讲解如何使用Ruby on Rails框架进行高效、灵活的Web应用开发。Rails是基于Ruby语言的开源框架,以其“约定优于配置”(Convention over Configuration...

    Agile Web Development With Ruby On Rails EN第一版

    《敏捷Web开发:Ruby on Rails实战》是编程领域的一本经典著作,专注于使用Ruby on Rails框架进行高效、灵活的Web应用开发。此书的第一版经过修补,补充了第二版未涉及的一些关键知识点,例如fastCGI的部署策略,这...

    Agile Web Development with Rails (4th edition)

    综上所述,《敏捷Web开发与Rails》(第4版)不仅介绍了Rails框架的基础知识和核心组件,还深入探讨了敏捷开发方法在Web开发中的应用。通过学习本书,开发者可以更好地理解和掌握如何使用Rails框架构建高质量的Web...

    Head First Rails (英文版)

    《Head First Ajax》的作者通过全面而系统的讲解,帮助读者深入理解Ajax,并能够应对Web开发中遇到的常见问题。 综上所述,读者通过阅读《Head First Rails》能够获得从Rails基础到高级应用开发的全方位知识,了解...

    ruby on rails

    Ruby on Rails,简称...总的来说,Ruby on Rails是一个强大且灵活的Web开发框架,它提倡简洁的代码和高效的开发流程。通过深入学习这三本书,你不仅可以成为一位熟练的Rails开发者,还能领略到敏捷开发的魅力和乐趣。

    Ruby_on_Rails笔记

    - 《应用Rails进行敏捷Web开发》(Dave Thomas & David Heinemeier Hansson) - **在线资源**: - [Ruby官方网站](http://ruby-lang.org/) - [Rails官方网站](http://rubyonrails.org/) #### 六、结语 通过阅读...

    Ruby on Rails Bible.pdf

    同时,也介绍了如何使用日志记录工具来监控应用程序运行时的状态,以及遇到问题时如何进行有效的调试。 ### 第7章:使用ActiveRecord进行对象关系映射 ActiveRecord是Rails中用于处理数据库交互的核心库之一。本章...

    Rails2.2.2之windows环境搭建

    Rails是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,使得Web开发变得更加简洁高效。本文将帮助初学者以及对旧版本Rails有需求的开发者在Windows系统上成功配置Rails 2.2.2...

    SOA系列:开源框架Ruby on Rails

    Ruby on Rails 在企业中的应用非常广泛,尤其是在构建敏捷、高性能的 Web 应用程序方面表现突出。一些知名企业如 Airbnb、Shopify 和 GitHub 都使用 Rails 构建了自己的核心业务系统。Rails 的成功应用主要得益于...

    Enterprise Rails

    《Enterprise Rails》是一本专注于企业级Rails应用开发的书籍,主要面向有经验的Ruby on Rails开发者,探讨如何在大型、复杂的企业环境中有效地运用这一强大的Web框架。2009年的出版时间点,正处于Rails框架逐渐成熟...

    Ruby脚本语言经典教程.pdf

    文档提供了许多与Rails相关的学习资源,包括实例代码和项目,这些都是理解Rails工作原理和学习Ruby语言在Web开发中应用的重要资源。 总体来说,Ruby语言因其设计上的简洁性和强大的面向对象特性,以及Rails框架带来...

    有关项目开发的报告.pdf

    在一个Web开发项目中,项目报告是用来记录项目进展、问题、解决方案和未来计划的正式文件。报告通常包含以下几个方面: 1. **项目概述**:简述项目的背景、目标和范围。 2. **技术栈描述**:列出项目所用到的前端...

    sample_app:Ruby on Rails 示例应用程序远程目录

    【Ruby on Rails 示例应用程序远程目录】是一个用于教学目的的项目,它展示了...通过深入学习和实践这个`sample_app-master`项目,开发者可以全面了解Rails的工作原理,提升Web开发技能,并能熟练构建类似的预订系统。

    Play_Framework_框架教程.pdf

    在介绍Play Framework框架之前,首先需要了解它所处的背景。Play是一个使用纯Java编写的全栈框架,它的设计理念是敏捷开发,提供了一种简洁...了解和学习Play Framework,将有助于Java开发者提升Web开发的效率和质量。

    训练营毕业生共同开发项目的网络平台。【国外,毕设】.zip

    1. **Web开发框架**:项目可能使用了诸如Spring Boot、Django或Ruby on Rails等流行的Web开发框架,这些框架可以帮助快速构建功能丰富的应用程序。 2. **数据库管理**:可能使用MySQL、PostgreSQL或MongoDB等数据库...

Global site tag (gtag.js) - Google Analytics