14 数据库基础之Rails与数据库的连接
在上一章中,我们讨论了Rails的MVC架构,其中控制器的职责对于开发者来说至关重要。在本章中,我们将他探讨Rails如何与数据库进行连接,了解如何配置数据库及其相关设置,以及如何进行基本的数据库操作。这是构建动态Web应用程序的重要一步,因为数据库存储了应用程序的数据。
数据库连接概要
Rails使用Active Record作为其对象关系映射(ORM)框架,使得与数据库的交互更加抽象和方便。通过Active Record,我们可以使用Ruby代码而不是SQL语句来实现数据的操作。Rails支持多种数据库,如SQLite、PostgreSQL、MySQL等。在本教程中,我们将以SQLite为例,因为它在开发环境中简单易用。
创建Rails应用并配置数据库
首先,让我们确保你已经安装了Rails。如果还没有安装,可以通过以下命令来安装:
1 | gem install rails |
接下来,我们创建一个新的Rails应用:
1 | rails new my_app --database=sqlite3 |
这里的--database=sqlite3
参数告诉Rails使用SQLite作为数据库。
创建完应用后,我们可以查看config/database.yml
文件,这是Rails与数据库连接的配置文件。默认情况下,Rails会为各个环境(development、test、production)提供相应的数据库配置。在开发环境中,配置看起来大致如下:
1 | development: |
这个配置指定了我们使用SQLite3数据库,数据库文件为db/development.sqlite3
。
生成数据库并建立连接
要与数据库连接,我们需要生成数据库。在终端中输入以下命令:
1 | rails db:create |
此命令会根据database.yml
中的配置创建相应的数据库。在创建完成后,Rails将会自动连接到数据库。
可以通过以下命令查看数据库是否成功创建:
1 | sqlite3 db/development.sqlite3 |
这条命令将打开SQLite数据库命令行界面,你可以在这里执行SQL查询,验证连接是否成功。
使用Active Record进行数据操作
一旦数据库连接建立,就可以开始使用Active Record进行数据操作了。首先,我们来生成一个模型以便与数据库交互。例如,我们可以创建一个名为Post
的模型,代表一篇文章。
1 | rails generate model Post title:string body:text |
这个命令将生成一个名为Post
的模型,以及对应的数据库迁移文件。迁移文件包括了数据库表的定义,包括字段和对应的数据类型。
接下来,我们需要运行迁移,使数据库结构更新:
1 | rails db:migrate |
执行后,SQLite数据库中将会创建一个posts
表,其中包括title
和body
两个字段。
在控制器中使用模型
接下来,我们可以在控制器中使用Post
模型来创建和读取数据。我们可以添加一个控制器来处理与Post
模型相关的请求。
生成控制器:
1 | rails generate controller Posts |
在生成的app/controllers/posts_controller.rb
文件中,添加以下代码来创建和显示文章:
1 | class PostsController < ApplicationController |
在这里,index
方法用于获取所有文章,而create
方法用于创建新文章。post_params
方法用于强参数,确保只能接收允许的参数。
查看数据
要查看文章数据,我们可以在app/views/posts/index.html.erb
文件中添加以下代码:
1 | <h1>All Posts</h1> |
这段代码会显示所有文章的标题和内容。
小结
在本章中,我们详细探讨了如何在Rails应用程序中配置和连接数据库。我们创建了一个简单的Post
模型,并通过控制器实现了数据的创建与显示。通过使用Active Record,我们可以方便地与数据库进行交互,而不必从头编写SQL查询。
在下一章中,我们将进一步扩展数据库操作的知识,探索如何生成和管理数据库迁移,以便进行更复杂的数据库结构更改和版本控制。
14 数据库基础之Rails与数据库的连接