2. 获取多个数据
2.1 使用多个主键
Model.find(array_of_primary_key)
方法可接受一个由主键组成的数组,返回一个由主键对应记录组成的数组
代码
# Find the clients with primary keys 1 and 10. client = Client.find([1, 10]) # Or even Client.find(1, 10) # => [#<Client id: 1, first_name: "Lifo">, #<Client id: 10, first_name: "Ryan">]
2.2 take
Model.take(limit)
方法获取 limit
个记录,不考虑任何顺序
代码
Client.take(2) # => [#<Client id: 1, first_name: "Lifo">, #<Client id: 2, first_name: "Raf">]
2.3 first
Model.first(limit)
方法获取按主键排序的前 limit
个记录
代码
Client.first(2) # => [#<Client id: 1, first_name: "Lifo">, #<Client id: 2, first_name: "Raf">]
2.4 last
Model.last(limit)
方法获取按主键降序排列的前 limit
个记录
代码
Client.last(2) # => [#<Client id: 10, first_name: "Ryan">, #<Client id: 9, first_name: "John">]
3.批量获取多个对象
3.1 for_each
find_each
方法获取一批记录,然后分别把每个记录传入代码块。在下面的例子中,find_each
获取 1000 个记录,然后把每个记录传入代码块,直到所有记录都处理完为止
代码
User.find_each do |user| NewsLetter.weekly_deliver(user) end
3.2find_in_batches
find_in_batches
方法和 find_each
类似,都获取一批记录。二者的不同点是,find_in_batches
把整批记录作为一个数组传入代码块,而不是单独传入各记录。在下面的例子中,会把 1000 个单据一次性传入代码块,让代码块后面的程序处理剩下的单据
代码
# Give add_invoices an array of 1000 invoices at a time Invoice.find_in_batches(include: :invoice_lines) do |invoices| export.add_invoices(invoices) end
相关推荐
标题 "rails查询学习笔记" 涉及的是Ruby on Rails框架中的数据库查询技术。Ruby on Rails,简称Rails,是一款基于Ruby语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,使得开发Web应用更加高效...
### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...
在 Rails 2.x 中,许多使用哈希参数的查询方法如 `:conditions`, `:include`, `:joins` 等在 Rails 3.1 中被标记为过时,虽然在3.1版本中仍然可用,但计划在 Rails 3.2 中完全移除。这些变化主要是为了引入一个新的...
在这一版本中,Active Record 提供了更强大的查询接口,包括 SQL 方法的集成和更灵活的关系管理。 2. Action Pack:包含了 MVC 架构中的 Controller 和 View 部分。Controller 处理 HTTP 请求并调用 Model,View ...
Rails 2.1增强了命名范围查询的功能,使其更加灵活且易于使用。 **基于UTC的迁移(UTC-based migrations)** 为了确保数据的一致性和准确性,Rails 2.1现在支持基于协调世界时(UTC)的数据库迁移。这种改进有助于...
2. 创建资源:使用`rails generate controller Posts`生成控制器,再用`rails generate scaffold Post title:string content:text`生成模型和相关的控制器、视图及路由。 3. 迁移数据库:编写迁移文件,更新数据库表...
2. Rails 3.1: 这个版本引入了Asset Pipeline,它管理应用程序的CSS、JavaScript和其他静态资源,提高了加载速度并支持压缩和合并。另外,它还引入了CoffeeScript和Sass作为默认的JavaScript和CSS预处理器,提升了...
2. **Rails 3.1新特性**: - **Asset Pipeline**:Rails 3.1引入了Asset Pipeline,将CSS、JavaScript、图片等静态资源管理整合到一个统一的流程中,提高了页面加载速度。 - **CoffeeScript**:默认使用...
1. **Active Record 查询接口**: Active Record 是 Rails 的核心组件之一,它负责模型和数据库之间的交互。这个文件详细介绍了如何在 Rails 中使用查询语言来检索、过滤和操作数据。这包括基本的查找方法(如 `find`...
2. **复杂的路由**:Rails的路由系统允许灵活地定义资源和URL结构。高级Rails会讲解如何创建更复杂的路由规则,如命名空间、嵌套资源和条件路由。 3. **ActiveRecord高级用法**:ActiveRecord是Rails的ORM(对象...
在控制台中,你可以直接操作应用的数据模型和执行各种Ruby代码,进行数据查询和调试。 为了启动Rails应用的服务,你可以运行: ```bash rails server -p *** ``` 这里的`***`代表你想让服务器监听的端口号。默认...
Rails 提供了多种方法来查询数据库: - **根据 ID 查询单个记录**: ```ruby t = Tweet.find(3) ``` - **查询多个记录**: ```ruby # 返回指定 ID 的记录数组 tweets = Tweet.find([3, 4, 5]) # 返回所有...
2. **查询接口(Query Interface)** 这个版本加强了查询接口,引入了`exists?`方法,可以用来检查是否存在特定的记录,而不会加载整个对象。此外,`pluck`方法允许开发者直接从数据库中抽取指定列的数据,无需创建...
Rails 2.0提供了ActiveRecord查询接口(Query Interface),允许开发者编写复杂的数据库查询。包括find、where、all、exists?等方法,可以进行条件筛选、分组、联接、排序等操作。 **8. Plugins和Gemfile** Rails ...
2. **Rails的安装** 安装Rails之前,需要确保RubyGems已经安装,它是Ruby的包管理器。然后,通过`gem install rails`命令安装最新版本的Rails。同样,可以用`rails -v`检查Rails版本。 3. **MySQL数据库** MySQL...
2. **安装Rails**:安装完Ruby后,使用gem包管理器安装Rails 2.2.3。运行`gem install rails -v 2.2.3`命令即可。 3. **创建新项目**:使用Rails命令行工具创建一个新的Rails项目。在终端中输入`rails new project_...
2. **模型(Models)**:Rails 使用 Active Record,这是一个 ORM(对象关系映射)库,允许开发者用 Ruby 代码操作数据库。模型定义数据结构、关联、验证和业务逻辑。 3. **视图(Views)**:视图负责展示数据,...
本文介绍如何开始使用Ruby on Rails,读完本文后,您将学到: 如何安装Rails,创建Rails应用,如何连接数据库; Rails应用的基本文件结构; MVC(模型,视图,控制器)和REST架构的基本原理; 如何快速生成Rails应用...