研究

爱上 ruby on rails一 : 项目初始化

2022-07-01  本文已影响0人  RickyWu585

启动后端项目:

rvm use 3
bundle exe rails server

rails数据库设计:

  1. 建模工具:generate model(这里的model用单数就行,因为一个model对应一个表)
bin/rails g model user email:string name:string
  1. 定义方法:这个方法是针对改变数据库的方法
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
  1. 同步到数据库:数据库就变了
bin/rails db:migrate
bin/rails db:rollback  step=3(回滚,drop table,step是次数,可不填,默认是回滚1次)
  1. 由于接下来要对user进行创建,查询之类的操作,由此就引入了创建路由routes.rb,下面代码的意思:当年你用post请求访问'/users'的时候,就会调用userscontroller里的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
  1. 脚手架命令生成针对userscontroller:这里是show方法和create方法
bin/rails g controller users show create
  1. 对相关方法进行实现:
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
  1. 数据验证,示例:models里验证email必须存在(presence: true)
class User < ApplicationRecord
  validates :email, presence: true
end
上一篇下一篇

猜你喜欢

热点阅读