0 0

rails 的一个问题很急,哪位大哥来帮解决下5

MenuCler.find(:all) { |m|
        map11 = "#{m.id}:#{m.name};"
        @parent_value = @parent_value + map11
}

这段代码不知道哪里错了,MenuCler是一个菜单表模型,里面有32条记录

但这段代码执行时,最后打印@parent_value时只有一个值,

但是去掉@parent_value = @parent_value + map11这一句,直接在块里面打印map11就能打印出32次记录出来。

那位兄弟帮解决一下,我搞了3天了没头绪。谢谢了 
2011年6月22日 15:07

2个答案 按时间排序 按投票排序

0 0

MenuCler.find(:all) { |m| 
        map11 = "#{m.id}:#{m.name};" 
        @parent_value = @parent_value + map11 


等价于:
MenuCler.all.find{|m|....} --- 实际上是MenuCler.to_a.find{||} 这里的to_a是relation方法返回@record。

MenuCler.all 返回一个@record数组,MenuCler.all.find此时的find是ruby里面的方法,API的解释是: find方法返回第一个block为true的值.
因为@parent_value = @parent_value + map11 为true。所以你写的方法只会返回MenuCler的第一条记录。

用puts能打印出来是因为puts语句没有比较操作符被认定为false,所以会遍历整个数组这样就打印出所有数据了。

自己在看看API
http://apidock.com/ruby/Enumerable/find

https://github.com/rails/rails/blob/3a22e744162ce4d29f228e76d3e3ff355c93b88f/activerecord/lib/active_record/relation.rb#L61

https://github.com/rails/rails/blob/827e5de60f27c6b559640eda7b79857050a72d9e/activerecord/lib/active_record/relation/finder_methods.rb#L95

2011年6月23日 11:34
0 0

@parent_value = []
MenuCler.find(:all) { |m| @parent_value << "#{m.id}:#{m.name};" } 

2011年6月23日 09:21

相关推荐

    提升Ruby on Rails性能的几个解决方案

    简介 Ruby On Rails 框架自它提出之日...Rails 是一个真正彻底的 MVC(Model-View-Controller) 框架,Rails 清楚地将你的模型的代码与你的控制器的应用逻辑从 View 代码中分离出来。Rails 开发人员很少或者可能从未遇到

    rails和mysql数据库连接中出现的问题以及解决办法

    在开发Web应用时,Rails框架和MySQL数据库的集成是一个常见的选择。然而,有时在尝试连接Rails应用到MySQL数据库时,可能会遇到一些问题。本篇文章将深入探讨这些常见问题及其解决方案。 首先,Rails与MySQL的连接...

    Rails101_by_rails4.0

    随着Rails版本的更新迭代,此书聚焦于一个特定的版本,帮助开发者掌握在Rails 4.0环境下开发应用所需的关键技能。 书中介绍了Ruby on Rails安装的最佳实践,以及如何通过Git、编辑器和Linux命令行等前置技能的学习...

    Ruby-GoOnRails使用Rails生成器来生成一个Golang应用

    总的来说,`GoOnRails`是一个创新的工具,它让Rails开发者能够轻松地在Rails项目中引入Go代码,实现高性能API服务。通过熟练掌握`GoOnRails`,开发者可以在保持高效开发流程的同时,享受到Go带来的性能提升。

    Rails

    描述中提到的博文链接指向了一个ITEYE博客文章,尽管具体内容未提供,但通常这样的博客可能会包含Rails的使用技巧、最佳实践、新版本更新或者特定问题的解决方案。 标签 "源码" 暗示了可能涉及Rails的源代码分析或...

    Rails recipes

    Rails Recipes是一本针对Ruby on Rails框架的实用书籍,它收集了一系列高效解决问题的技巧和方法,也被称为“Rails开发者的宝典”。作者们通过分享自己的经验和见解,为Rails程序员提供了一本既有实际操作指导又有...

    关于rails 3.1 cucumber-rails 1.2.0

    Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...

    Rails项目源代码

    这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何利用Rails的强大功能来创建一个允许用户上传、分享和浏览图片的应用。 1. **Rails框架基础**: Rails的核心理念是DRY(Don't...

    使用Aptana+Rails开发Rails Web应用(中文)

    例如,要在Rails应用中创建一个新的资源,如博客文章,你需要在models目录下创建一个名为`post.rb`的文件,定义Post类,并设置属性如标题和内容。在controllers目录下创建`posts_controller.rb`,定义控制器方法,如...

    component base rails applications

    - 如何进行模块化拆分,以使得每个模块都是独立和专注于解决一个特定问题的。 - 如何在保持组件独立性的同时,确保它们能够协同工作,共同构成一个完整的应用。 7. 历史和演变: - 描述了组件化思想的历史,并...

    rails2-sample

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

    rails2.3.2

    标题 "rails2.3.2" 指的是 Ruby on Rails 框架的一个特定版本,即 2.3.2。Ruby on Rails(通常简称为 Rails)是一个基于 Ruby 语言的开源 Web 应用程序框架,它遵循 Model-View-Controller (MVC) 设计模式,用于构建...

    Rails的中文乱码问题

    Rails是一个基于Ruby语言的开源Web开发框架,它遵循MVC(Model-View-Controller)架构模式。在处理中文数据时,由于不同系统、数据库和文件之间的编码差异,可能会出现乱码现象。 中文乱码问题通常出现在以下几个...

    Rails3常用命令行命令

    Rails3 是 Ruby on Rails 框架的一个版本,它提供了一系列强大的命令行工具,使得开发者可以快速地构建和管理Web应用。在本文中,我们将深入探讨Rails3中的常用命令,帮助你更高效地进行开发工作。 首先,新建一个...

    windows下配置netbeans开发rails

    在Windows环境下,使用NetBeans进行Rails开发需要一系列的配置步骤,因为Rails是一个基于Ruby的Web框架,而NetBeans是一款强大的集成开发环境(IDE),支持多种编程语言,包括Ruby。以下是一些关键知识点: 1. **...

    rails指南 中文版

    Rails指南中文版是针对Ruby on Rails框架的一份详尽教程,旨在帮助开发者深入理解并熟练掌握这个强大的Web应用开发工具。Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-...

    中文版rails教程

    总的来说,Ruby on Rails是一个强大的开发工具,它简化了Web应用的构建过程,让开发者可以更专注于创新和解决问题,而不是琐碎的配置和代码复写。通过深入学习和实践,你可以提升自己的技术水平,为未来的事业发展...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    - **步骤**:通过命令行使用`rails new project_name`来初始化一个新的Rails项目。 - **结构**:新项目将包含默认的目录结构,如`app`、`config`、`db`等,分别用于存放应用程序代码、配置文件、数据库迁移脚本等。 ...

    rails飞信 gem plugin api 插件的问题解决方案

    标题中的“rails飞信 gem plugin api 插件的问题解决方案”涉及到的是在Ruby on Rails框架下,使用特定的gem(一种Ruby的库或插件)来集成飞信API时遇到的问题及解决方法。飞信是中国移动推出的一种即时通讯服务,...

Global site tag (gtag.js) - Google Analytics