安装与配置
在开始学习 Rails 之前,确保你的计算机已经安装了 Ruby 和 Rails。如果你的系统还没有安装这些工具,可以按照以下步骤进行安装。
安装 Ruby
你可以通过 Ruby 的官方网站下载并安装最新版本的 Ruby。为了简化安装过程,推荐使用 RVM(Ruby Version Manager)或 rbenv 来管理 Ruby 版本。
使用 RVM 安装 Ruby
首先,你需要安装 RVM:
\curl -sSL https://get.rvm.io | bash -s stable
然后重新加载你的 shell 配置文件:
source ~/.rvm/scripts/rvm
接下来,安装 Ruby:
rvm install ruby
最后,设置默认的 Ruby 版本:
rvm use ruby --default
安装 Rails
在安装 Rails 之前,请确保你的系统上已经安装了 Node.js 和 Yarn。然后,你可以通过 gem 来安装 Rails:
gem install rails
配置开发环境
Rails 项目通常需要一个数据库。这里我们以 PostgreSQL 为例进行说明。首先,确保你已经安装了 PostgreSQL。
安装完成后,创建一个新的 Rails 项目:
rails new myapp -d postgresql
这将创建一个名为 myapp
的新 Rails 应用,并指定使用 PostgreSQL 数据库。
进入项目目录:
cd myapp
编辑 config/database.yml
文件,根据你的 PostgreSQL 配置修改相应的数据库连接信息。
启动数据库服务,并创建数据库:
rails db:create
第一个 Rails 应用
现在我们已经设置好了开发环境,接下来我们将创建一个简单的 Rails 应用来熟悉基本概念。
创建控制器和视图
首先,创建一个新的控制器 PagesController
:
rails generate controller Pages home about
这将生成一个控制器文件 app/controllers/pages_controller.rb
,其中包含 home
和 about
动作。
接下来,在 app/views/pages
目录下创建对应的视图文件:home.html.erb
和 about.html.erb
。在这些文件中添加一些简单的 HTML 内容。
路由配置
为了使用户能够访问到我们的页面,需要在路由文件 config/routes.rb
中添加相应的路由规则:
Rails.application.routes.draw do root 'pages#home' get 'about', to: 'pages#about' end
这样,当用户访问根路径时,会显示 PagesController
的 home
动作;当用户访问 /about
时,则会显示 about
动作。
运行服务器
最后一步是启动 Rails 开发服务器,以便我们可以查看效果:
rails server
打开浏览器,访问 http://localhost:3000
,你应该能看到 PagesController
中定义的 home
页面。
模型、视图和控制器 (MVC) 架构
Rails 是基于 MVC(Model-View-Controller)架构设计的框架。理解 MVC 架构对于构建复杂的 Web 应用程序至关重要。
模型 (Model)
模型负责处理应用程序的数据逻辑。它通常对应于数据库中的表。例如,如果我们有一个用户管理系统,那么可以创建一个 User
模型来表示用户数据。
创建模型
使用 Rails 命令行工具可以快速创建模型及其关联的数据库迁移文件:
rails generate model User name:string email:string
这将生成一个 User
模型以及相应的迁移文件。迁移文件用于创建数据库表结构。
数据验证
在模型中,我们可以定义数据验证规则,确保数据的有效性:
class User < ApplicationRecord validates :name, presence: true validates :email, presence: true, uniqueness: { case_sensitive: false } end
视图 (View)
视图负责展示数据。它通常使用 ERB(Embedded Ruby)模板语言来嵌入动态内容。
ERB 模板
在 app/views
目录下的子目录中,你可以找到各种视图文件。例如,app/views/users/index.html.erb
可能包含如下代码:
-- -------------------- ---- ------- ------------- ------- ---- ----------- ----------- ----- -- ----------- -- ------ -- ---- ------- --------- ------- ------- ---------- ------- ----- -- --- -- --------
这段代码将遍历 @users
变量中的每个用户对象,并输出其名称和邮箱地址。
控制器 (Controller)
控制器充当模型和视图之间的桥梁。它接收来自用户的请求,调用适当的模型方法来处理数据,并将结果传递给视图。
定义动作
在控制器中,你可以定义不同的动作来响应不同的请求。例如,在 UsersController
中:
class UsersController < ApplicationController def index @users = User.all end end
这个 index
动作查询所有的用户记录,并将其赋值给实例变量 @users
。
总结
本章介绍了如何安装和配置 Rails 环境,并创建了一个简单的 Rails 应用。同时,我们还讨论了 MVC 架构的基本概念,包括模型、视图和控制器各自的作用及实现方式。这些基础知识将为后续更深入的学习打下坚实的基础。