启动后端项目:
rvm use 3
bundle exe rails server
rails数据库设计:
- 建模工具:generate model(这里的model用
单数
就行,因为一个model对应一个表)
bin/rails g model user email:string name:string
- 定义方法:这个方法是针对改变数据库的方法
class User < ApplicationRecord ( '<' 是继承的意思)
// validates :email, presence: true : 这里是之后验证用的
end
// db/migrate
class CreateUsers < ActiveRecord::Migration[7.0]
def change ('change'意思是对数据库做的变动)
create_table :users do |t|
t.string :email
t.string :name
t.timestamps (会创建两个字段:updated_at created_at)
end
end
end
- 同步到数据库:数据库就变了
bin/rails db:migrate
bin/rails db:rollback step=3(回滚,drop table,step是次数,可不填,默认是回滚1次)
- 由于接下来要对user进行创建,查询之类的操作,由此就引入了
创建路由
:routes.rb
,下面代码的意思:当年你用post请求访问'/users'
的时候,就会调用users
的controller
里的create
方法
Rails.application.routes.draw do
# Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html
post '/users', to: 'users#create'
get '/users/:id', to: 'users#show'
end
- 脚手架命令生成针对
users
的controller
:这里是show
方法和create
方法
bin/rails g controller users show create
- 对相关方法进行实现:
class UsersController < ApplicationController
def create
user = User.new name: 'frank'
if user.save
render json: user
else
render json: user.errors
end
end
def show
user = User.find_by_id params[:id]
if user
render json: user
else
head 404
end
end
end
- 数据验证,示例:models里验证email必须存在(presence: true)
class User < ApplicationRecord
validates :email, presence: true
end
网友评论