在本章中,我们将学习如何使用 Ruby 来实现基本的 CRUD(创建、读取、更新和删除)操作。这些操作是数据库交互的基础,也是任何 Web 应用程序不可或缺的部分。我们将使用 Active Record,它是 Ruby on Rails 的一部分,但也可以独立使用。
安装必要的库
首先,我们需要安装 activerecord
和 sqlite3
库,前者用于处理 Active Record 功能,后者则提供 SQLite 数据库支持。
gem install activerecord gem install sqlite3
接下来,我们需要设置一个简单的数据库连接。我们将在 Ruby 脚本中配置这个连接,以便于测试和演示。
-- -------------------- ---- ------- ------- --------------- ------- --------- ---------------------------------------- -------- ---------- --------- ------------------- - ------------------------- - ------------------
这里,我们连接到了名为 my_database.db
的 SQLite 数据库,并设置了日志记录器来跟踪 SQL 查询。
创建操作
创建操作是指向数据库添加新记录的过程。我们将定义一个模型类,该类代表数据库中的一个表。
class User < ActiveRecord::Base end
在这个例子中,我们定义了一个名为 User
的类,它将映射到数据库中的 users
表。现在我们可以使用 create
方法来插入新记录:
user = User.create(name: "张三", email: "zhangsan@example.com") puts user.id # 输出新创建用户的 ID
读取操作
读取操作是从数据库中检索数据的过程。Active Record 提供了多种方式来执行查询。
单条记录
要检索特定的用户,可以使用 find
方法:
user = User.find(1) puts "#{user.name}, #{user.email}"
多条记录
如果需要检索多条记录,可以使用 where
方法:
users = User.where("name LIKE ?", "%李%") users.each do |user| puts "#{user.name}, #{user.email}" end
这里,我们搜索所有名字中包含“李”的用户。
更新操作
更新操作涉及修改数据库中的现有记录。可以使用 update
方法或直接访问属性并保存更改:
user = User.find(1) user.update(email: "newemail@example.com") puts user.email # 输出更新后的邮箱地址
或者:
user = User.find(1) user.email = "anotheremail@example.com" user.save puts user.email
删除操作
最后,删除操作涉及从数据库中移除记录。使用 destroy
或 delete
方法可以实现这一目标:
user = User.find(1) user.destroy # 使用 destroy 删除记录,会触发回调 # 或者 User.delete(1) # 直接删除记录,不会触发回调
以上就是在 Ruby 中使用 Active Record 实现 CRUD 操作的基本步骤。通过这些基础功能,你可以构建更复杂的应用程序逻辑,包括处理关系、验证等高级功能。