Logo
Section 1 / 14

模型结构

开始构建你的应用程序,并了解你将在应用中使用的模型结构。

导入

模型结构

开始构建你的应用程序,并了解你将在应用中使用的模型结构。

在开始编写应用程序代码之前,你需要确定应用的功能。这将帮助你分解实现步骤,使编码过程更加轻松。本应用的重点将更多放在功能实现上,而非外观设计。

你将创建一个简单的链接分享应用。我们希望实现的基本功能如下:

  1. 允许用户分享和查看链接
  2. 允许用户注册、登录和登出
  3. 允许已登录用户提交和编辑链接
  4. 允许已登录用户对链接进行点赞或点踩
  5. 允许已登录用户对提交的链接发表评论

模型

首先需要决定模型的结构,即明确需要多少个模型、每个模型包含哪些属性,以及它们之间的关联关系。

在此项目中,你只需要三个模型:User、Link 和 Comment。

  • User 模型将包含 email 和 password 字段。该模型将使用 Devise gem 来实现注册、登录和登出功能。

  • Link 模型将包含 title(标题)、url(链接地址)和 user_id(所属用户ID),用于存储应用中添加的所有链接。

  • Comment 模型将包含 link_id(关联的链接ID)和 text_body(评论内容)。

...
database tables

现在你已经确定了应用的功能需求并规划好了模型结构,可以开始编写应用代码了。

你将从创建一个新的 Rails 项目开始:

1rails new linkShare

生成 Link 模型

为了快速搭建 Link 模型,你将使用 scaffold 命令,而不是从零开始手动构建整个结构。

运行以下命令:

1rails g scaffold link title:string url:string

该命令会自动创建模型、对应的控制器和视图,并生成完整的测试文件以及用于更新数据库结构的迁移文件。仅通过这一条命令,你就完成了应用的基础架构搭建。

注意:在设置好 User 模型之后,再为 Link 模型添加 user_id 字段。

执行数据库迁移:

1rake db:migrate

运行以下命令将执行迁移、加载种子数据并启动 Rails 服务器。

注意:在终端中运行任何 Rails 命令(如 rails、rake)时,必须在前面加上 bundle exec。若需手动部署服务器,请使用 bundle exec rails s -b 'ssl://0.0.0.0:3000?key=/project/server.key&cert=/project/server.crt’。

No configuration found for ID: e89fb4cfc78c9064632768a7b04c381474c3ac02d6e3541faadf6ea3c5bdf1a1

测试

基础挑战:配置路由