记账app_1_开发准备
Contents
1 技术选型
-
Vue3 + TSX + Rails7
-
Vue3 + TSX的优点
-
像使用React一样使用Vue3
-
踩坑的乐趣
-
-
缺点
- 无法利用模板的性能优化: 静态提升、修补标记、树结构打平、加速SSR激活
-
如何做技术选型
-
要好招聘:提高程序员的可替代性
-
要好用:自己用过或认识的人用过,反馈不错
-
要有长期维护者:付费维护者>免费维护者>兼职维护者
-
无利益冲突:华为、俄罗斯
-
2 项目架构
nginx Rails PostgreSql Vue3 Pinia axios
- Ruby简易教程
- Ruby的类
|
|
- Ruby数组
- 需求:收集1-6之间的偶数
|
|
3 docker搭建开发环境
git@github.com:GSemir0418/oh-my-env.git
-
安装最新版 Docker 客户端
-
打开 Docker 客户端的配置
- 找到 Docker Engine 选项卡,配置 registry-mirrors(自行搜索教程)
1 2 3 4
"registry-mirrors": [ "http://docker.mirrors.ustc.edu.cn", "https://62wvf5vn.mirror.aliyuncs.com" ]
- 找到 Resources 选项卡,配置 Proxies(可跳过)
-
git clone git@github.com:GSemir0418/oh-my-env.git
将 oh-my-env 下载到本地 -
打开 Windows/Mac 的终端,运行
docker network create network1
-
打开 VSCode
- 安装 Remote - Container 插件
- 打开 oh-my-env 目录
- 输入 Ctrl + Shift + P,然后输入 Reopen,回车,等待
-
等上一步启动完毕之后,新建终端
- 运行
nvm use system
和node --version
得到 node 运行环境 - 运行
rvm use 3
和ruby --version
得到 ruby 运行环境 - 运行
bundle --version
检查bundle(相当于ruby中的npm)是否可用 - 运行
irb
(运行ruby的学习环境)
- 运行
4 创建项目
-
配置gem和bundle国内源
-
gem是封装起来的Ruby应用程序或代码库,相当于nodejs的package,对应的文件是Gemfile
-
bundle是用来管理项目中所有的gem依赖,相当于nodejs的npm
-
|
|
- 安装rails及postgresql的驱动
|
|
- 在repos目录下创建rails项目
|
|
- 启动数据库容器
|
|
- 连接数据库
|
|
5 后端开发
-
设计数据库的两种思路
-
自上而下:先想大概,再添细节
-
自下而上:用到什么加什么
-
两种思路可以混合
-
-
工具
-
建模工具:
bin/rails g model user email:string name:string
-
生成app/model/user.rb
-
1 2
class User < ApplicationRecord end
-
生成db/migrate/create_users.rb作为数据库操作工具(
ActiveRecord::Migration
)只需写好其change方法即可 -
1 2 3 4 5 6 7 8 9 10 11 12 13 14
class CreateUsers < ActiveRecord::Migration[7.0] def change create_table :users do |t| t.string :email t.string :name t.timestamps # 相当于 # createTable('users', (api)=>{ # api.string('email') # }) end end end
-
-
同步到数据库:
bin/rails db:migrate
-
反悔命令:
bin/rails db:rollback step=1
-
-
尝试实现创建user的功能
-
编写路由:config/routes.rb,指定controller
-
1 2 3 4 5 6
Rails.application.routes.draw do get '/users/:id', to: 'users#show' post '/users/', to: 'users#create' # 相当于 post('users', { to: 'users#create' }) # to属性的值表示该路由对应哪一个controller中的哪一个方法 end
-
-
创建Controller
-
脚手架:
bin/rails g controller users show create
,同时会自动生成routes相关内容,删掉即可 -
生成 app/controllers/users_controller.rb ,编写show和create方法具体实现
-
1 2 3 4 5 6 7 8
class UsersController < ApplicationController def show p '访问了show' end def create p '访问了create' end end
-
使用curl命令测试get和post接口,记得重启项目
-
1 2
curl -X POST http://127.0.0.1:3000/users curl GET http://127.0.0.1:3000/users/1
-
-
创建用户并验证
-
app/controllers/users_controller.rb
-
1 2 3 4 5 6 7 8 9
def create u1 = User.new email: 'gsq@xxx.com', name: 'gsq' if u1.save # 输出JSON视图 render json:u1 else render json:u1.errors end end
-
app/model/user.rb 在model中实现验证
-
1 2 3
class User < ApplicationRecord validates :email, presence: true end
-
Author gsemir
LastMod 2022-05-17