Ruby on Rails 快速入门

本文是关于Ruby on Rails的快速入门指南,着重介绍了如何创建Rails API,包括启动PostgreSQL数据库、配置MVC架构、实现RESTful API以及进行单元测试。通过实例详细讲解了从数据库迁移、控制器定义到数据校验的全过程,是初学者学习Rails API开发的实用教程。
摘要由CSDN通过智能技术生成

theme: condensed-night-purple

Rails

ruby china wiki:https://ruby-china.org/wiki

The Rails Doctrine: https://ruby-china.org/wiki/the-rails-doctrine

Guides:

ruby toolbox: https://www.ruby-toolbox.com/

0. 前言

dev

最近国内互联网就业市场持续低迷,作为主要着力于前端技术的我,也开始探索后端、部署相关的技术。之前除了接触过 Node.js,还有一门我一直想学习和应用的语言就是 Ruby 了。

第一次听说 Ruby 是在 2020 年的夏天,当时还是土木 🐶 的我,从前辈口中听说了 Ruby 这个词,他说他要亲自教我,但是没有天赋的我还是去土木和设计行业卷了一阵子才正式返航计算机。虽迟但到,在 2023 年的夏天,我写下这一篇快速入门,也算是一种重逢吧!

Ruby 同样是一门面向对象的语言,抛开性能不谈,它的语法非常简单,行文甚至比 Python 还要简洁,而且足够语义化,这也是我选择它的重要原因。Rails 作为 Ruby 的开发框架,和大部分其他语言框架一样采用 MVC 架构(附录 A 中我添加了 MVC 的说明),它提供了一些工具和函数来快速开发 Web 应用程序。另一方面,它还支持主流的数据库,比如:MySQL、PostgreSQL 和 SQLite 等。

目前,我正在开发一个 H5 小应用,数据库使用的是 PostgreSQL,总体体验下来,还算 OK,如果要问我,什么是 Rails?

Rails = Routes + MVC

以下是正文。

1. 创建 Rails API

安装 ruby 的过程我就省略了,安装完成后执行 ruby --version 来查看版本。

1.1 生成 rails api 服务

在 docker 容器中执行以下命令生成一个 rails api 服务

shell gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ bundle config mirror.https://rubygems.org https://gems.ruby-china.com gem install rails -v 7.0.2.3 pacman -S postgresql-libs cd ~/repos rails new --api --database=postgresql --skip-test catdou-1 code catdou-1 bin/rails server

会报错,需要启动一个数据库,如下。

1.2 启动 postgres 数据库

在宿主机终端执行以下命令启动一个 postgres 数据库(版本为 14)

shell docker run -d --name db-for-catdou -e POSTGRES_USER=catdou -e POSTGRES_PASSWORD=123456 -e POSTGRES_DB=catdou_dev -e PGDATA=/var/lib/postgresql/data/pgdata -v catdou-data:/var/lib/postgresql/data --network=network1 postgres:14

1.3 连接数据库

配置开发环境变量,config/database.yml

yaml development: <<: *default database: catdou_dev username: catdou password: 123456 host: db-for-catdou

重新运行 server

shell bin/rails server

1.4 model 定义

user 是表名,email 和 name 是字段

shell bin/rails g model user email:string name:string

生成数据库 migrate 文件以及 model 文件:

  • db/migrate/20230607152514createusers.rb

    ruby class CreateUsers < ActiveRecord::Migration[7.0] # 定义一个类,用于创建表  def change    create_table :users do |t| # 方法名为 create_table,表名为 users      t.string :email # 创建字段 email,类型为 string      t.string :name # 创建字段 name,类型为 string            t.timestamps # 创建时间字段:updated_at 更新时间,created_at 创建时间    end  end end

  • app/models/user.rb

    ruby class User < ApplicationRecord end

1.5 数据库迁移同步

将创建的 user 模型迁移到 postgres 数据库(会生成一个 users 表)

shell bin/rails db:migrate bin/rails db:rollback step=1 # 如果需要的话,可以用它将数据库回退到上一步

1.6 controller 定义

生成 users 的 controller,包括 show 和 create 方法

shell bin/rails g controller users show create

生成 users 的控制器文件以及添加相应路由

  • app/controllers/users_controller.rb(源文件已做修改)

    ```ruby class UsersController < ApplicationController def show user = User.findbyid params[:id] # 在 users 表中找到对应 id 的那一行记录 if user render json: user # 如果存在,返回 user else head 404 # 如果不存在,返回一个 404 响应码 end end

    def create # 在 users 表中新建一条记录,email 是 'eric@x.com',name 是 'eric' user = User.new email: 'eric@x.com', name: 'eric' if user.save # 如果保存成功了 render json: user # 返回给前端 json 数据(新建的 user) else

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值