Ruby on Rails 教程:快速开始你的第一个 RoR 项目 – wiki基地

I apologize for the confusion. It appears I do not have a write_file tool available in this environment. I will provide the article content directly in my response.


Ruby on Rails 教程:快速开始你的第一个 RoR 项目

Ruby on Rails(通常称为 Rails)是一个由 Ruby 语言编写的服务器端 Web 应用程序框架。它以其“约定优于配置”(Convention Over Configuration)的理念、快速开发能力和强大的生态系统而闻名。本教程将引导你完成创建第一个 Rails 项目的快速启动过程。

1. 准备环境

在开始之前,你需要确保你的系统上安装了 Ruby 和 Rails。

1.1. 安装 Ruby

Rails 依赖于 Ruby。推荐使用版本管理器(如 rbenvRVM)来安装和管理 Ruby 版本,这能避免潜在的系统冲突。

  • macOS/Linux (推荐 rbenv):

    bash
    git clone https://github.com/rbenv/rbenv.git ~/.rbenv
    echo 'eval "$(~/.rbenv/bin/rbenv init - bash)"' >> ~/.bash_profile # 或者 ~/.zshrc
    git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
    rbenv install 3.2.2 # 安装一个稳定版本,例如 3.2.2
    rbenv global 3.2.2
    ruby -v # 验证安装

  • Windows:
    推荐使用 RubyInstaller for Windows,选择带 DevKit 的版本,它包含了编译本地 gem 所需的工具链。

1.2. 安装 Bundler

Bundler 是 Ruby 的依赖管理工具,用于确保你的应用程序在不同环境中拥有相同的 gem(库)版本。

bash
gem install bundler

1.3. 安装 Rails

一旦 Ruby 和 Bundler 就绪,你就可以安装 Rails 了。建议安装最新稳定版。

bash
gem install rails

安装完成后,验证 Rails 版本:

bash
rails -v

2. 创建第一个 Rails 项目

现在,让我们创建一个新的 Rails 应用程序。

bash
rails new my_first_app

这个命令会:
* 创建一个名为 my_first_app 的新目录。
* 在该目录中生成一个完整的 Rails 应用程序骨架。
* 运行 bundle install 来安装所有必要的 gem。

创建完成后,进入项目目录:

bash
cd my_first_app

3. 启动 Rails 服务器

Rails 内置了一个开发服务器(Puma),可以让你在本地运行应用程序。

“`bash
rails server

或者简写为 rails s

“`

在你的浏览器中访问 http://localhost:3000。如果一切正常,你将看到 Rails 的欢迎页面:“Yay! You’re on Rails!”。

4. 生成控制器和视图

Rails 采用 MVC(Model-View-Controller)架构模式。让我们创建一个简单的页面。

4.1. 生成控制器

我们将创建一个名为 Pages 的控制器,并为其添加一个 home 动作。

“`bash
rails generate controller Pages home

或者简写为 rails g controller Pages home

“`

这个命令会:
* 创建 app/controllers/pages_controller.rb 文件。
* 在 pages_controller.rb 中添加一个 home 方法。
* 创建 app/views/pages/home.html.erb 文件(这是 home 动作的视图)。
* 更新 config/routes.rb 文件,添加一个路由规则。

4.2. 编辑视图

打开 app/views/pages/home.html.erb 文件,并替换其内容:

“`html+erb

欢迎来到我的第一个 Rails 应用!

这是一个快速入门的教程。

“`

4.3. 设置根路由

我们需要告诉 Rails,当用户访问应用的根路径 (/) 时,显示 Pages 控制器的 home 动作。

打开 config/routes.rb 文件,找到这一行:
get 'pages/home'

将其修改为:

ruby
root 'pages#home'

现在,保存文件并刷新浏览器中的 http://localhost:3000。你将看到你刚刚创建的欢迎页面。

5. 使用数据库和模型

Rails 的另一个强大功能是 ActiveRecord,一个对象关系映射(ORM)工具,它让数据库操作变得非常简单。让我们创建一个简单的“文章”模型。

5.1. 生成模型

我们将生成一个 Article 模型,它有两个属性:title(字符串)和 content(文本)。

“`bash
rails generate model Article title:string content:text

或者简写为 rails g model Article title:string content:text

“`

这个命令会:
* 创建 app/models/article.rb 文件(模型)。
* 创建数据库迁移文件,例如 db/migrate/XXXXXXXXXXXXXX_create_articles.rb

5.2. 运行数据库迁移

迁移文件描述了如何修改数据库结构。我们需要运行它来创建 articles 表。

bash
rails db:migrate

5.3. 简单交互(Rails 控制台)

你可以使用 Rails 控制台来与你的应用程序进行交互,包括创建、读取、更新和删除(CRUD)数据。

“`bash
rails console

或者简写为 rails c

“`

在控制台中尝试以下操作:

“`ruby

创建一篇文章

Article.create(title: “我的第一篇文章”, content: “这是我使用 Rails 创建的第一篇文章内容。”)

查询所有文章

Article.all

查找特定文章

Article.find_by(title: “我的第一篇文章”)

更新文章

article = Article.first
article.update(content: “更新后的文章内容。”)

删除文章

article.destroy
“`

输入 exit 退出控制台。

6. 创建文章的 CRUD 界面

为了让用户也能与文章交互,我们将使用 Rails 的脚手架(Scaffold)功能,它能快速生成一个完整的 CRUD 界面。

bash
rails generate scaffold Article title:string content:text

这个命令会生成:
* Article 模型的控制器 (articles_controller.rb)。
* 各种视图文件(index.html.erb, show.html.erb, new.html.erb, edit.html.erb)。
* 部分视图。
* 路由规则。
* JavaScript 和 CSS 文件。

再次运行数据库迁移,因为脚手架可能会添加一些索引或其他数据库修改(尽管在这里可能不是必须的,但养成习惯是好的)。

bash
rails db:migrate

现在,将 config/routes.rb 文件中的 root 路由修改为 articles#index,以便根路径直接显示文章列表:

ruby
Rails.application.routes.draw do
resources :articles # 这一行是由 scaffold 生成的,它会创建所有 CRUD 路由
root 'articles#index' # 将根路由指向文章列表页
# get 'pages/home' # 可以删除或注释掉这一行
end

保存文件,并在浏览器中访问 http://localhost:3000。你现在应该能看到一个文章列表界面,可以创建新文章、查看、编辑和删除文章。

7. 下一步

恭喜你!你已经成功地创建了你的第一个 Ruby on Rails 应用程序,并学会了:

  • 设置 Rails 开发环境。
  • 创建新的 Rails 项目。
  • 启动 Rails 服务器。
  • 创建控制器和视图。
  • 设置根路由。
  • 使用 ActiveRecord 模型和数据库迁移。
  • 通过脚手架快速生成 CRUD 界面。

这只是 Rails 世界的冰山一角。接下来,你可以探索以下主题:

  • 深入理解 MVC: 学习控制器、模型和视图如何协同工作。
  • 路由: 掌握更复杂的路由配置。
  • 表单和参数: 处理用户输入。
  • 验证: 确保数据的完整性。
  • 测试: 编写自动化测试来保证代码质量。
  • 部署: 将你的应用程序发布到生产环境。

通过不断实践和学习,你将能使用 Ruby on Rails 构建出强大而高效的 Web 应用程序。


滚动至顶部