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
2
3
4
5
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000

这个配置指定了我们使用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表,其中包括titlebody两个字段。

在控制器中使用模型

接下来,我们可以在控制器中使用Post模型来创建和读取数据。我们可以添加一个控制器来处理与Post模型相关的请求。

生成控制器:

1
rails generate controller Posts

在生成的app/controllers/posts_controller.rb文件中,添加以下代码来创建和显示文章:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class PostsController < ApplicationController
def index
@posts = Post.all
end

def create
@post = Post.new(post_params)
if @post.save
redirect_to posts_path
else
render :new
end
end

private

def post_params
params.require(:post).permit(:title, :body)
end
end

在这里,index方法用于获取所有文章,而create方法用于创建新文章。post_params方法用于强参数,确保只能接收允许的参数。

查看数据

要查看文章数据,我们可以在app/views/posts/index.html.erb文件中添加以下代码:

1
2
3
4
5
6
<h1>All Posts</h1>
<ul>
<% @posts.each do |post| %>
<li><strong><%= post.title %></strong>: <%= post.body %></li>
<% end %>
</ul>

这段代码会显示所有文章的标题和内容。

小结

在本章中,我们详细探讨了如何在Rails应用程序中配置和连接数据库。我们创建了一个简单的Post模型,并通过控制器实现了数据的创建与显示。通过使用Active Record,我们可以方便地与数据库进行交互,而不必从头编写SQL查询。

在下一章中,我们将进一步扩展数据库操作的知识,探索如何生成和管理数据库迁移,以便进行更复杂的数据库结构更改和版本控制。

14 数据库基础之Rails与数据库的连接

https://zglg.work/rails-zero/14/

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论