rails 简单增删改查

rails是什么

  • 大致理解为为了方便前端开发,然后就会有人封装了一些框架,例如vue,而rails 就是 ruby的一个框架,方便开发者用ruby进行开发。

Rails中数据在MVC框架中的传递

rails 简单增删改查_第1张图片
image.png

数据在MVC框架中的传递如上图所示。上图的执行步骤为:

1.浏览器发送HTTP request请求给rails服务器;
2.路由(Routing)根据规则决定送往哪一个Controller的Action中进行处理;
3.负责处理请求的controller通过action操作model;
4.model访问数据库并对数据进行操作;
5.controller将读取到的数据资料渲染给view模板;
6.回传最终的HTML页面给浏览器

rails 命名约定

  • 数据库表名:复数,下划线分隔单词(例如 book_clubs)
  • 模型类名:单数,每个单词的首字母大写(例如 BookClub)

rails命令行记录

  • _ #看上一次打印了什么

  • rails new 项目名称 #生成一个项目

  • bin/rails server #启动一个项目

  • bin/rails generate controller Welcome index # 生成器创建一个包含“index”动作的“Welcome”控制器:

  • bin/rails generate model 开头大写模型的名称 #生成一个model

  • rails db:migrate #迁移 生成一个数据表

  • bin/rails c #开启调试

    • 模型名.all #看到表所有数据

    • 模型名.first #看到表的第一条数据

    • 模型名.new #表的数据结构

    • 模型名.find() #找到表对应的id的那条数据

    • 模型名.find_by(健名:'内容') #找到对应字段并且内容相同的数据

Active Record

  • 中文翻译: 活动记录
  • Active Record 是 MVC 中的 M(模型),负责处理数据和业务逻辑。Active Record 负责创建和使用需要持久存入数据库中的数据。Active Record 实现了 Active Record 模式,是一种对象关系映射系统。
创建Active Record 模型

rails中创建一个活动记录很简单

class Product < ApplicationRecord
end
  • 创建一个继承ApplicationRecord类的类,而ApplicationRecord
    继承 ActiveRecord::Base,后者定义了一系列有用的方法。

  • 使用 ActiveRecord::Base.table_name= 方法可以指定要使用的表名:

暂时看不懂

CRUD

  • 什么是CRUD,国人常说的增删改查,英文就是create,reade,update,delete。
  • C 表示创建,R 表示读取,U 表示更新,D 表示删除
    首先:
bin/rails generate model Test  //后面可以加字段,也可以不加字段。
// 如果不定义字段 可以找到db文件夹的migrate 对应的迁移自己进行增加字段
  • rails会自动为你创建一个models,和 一张迁移(migrate)。
rails db:migrate  //迁移(暂时理解为生成一张对应的据表)
  • 在rubymine自带的终端 开启调试 bin/rails c 输入:
创建
# 直接创建一条数据在对应的表中,并且保存
模型名.create(字段名: '...',...)

# new 方法实例化一个新对象,但不保存:
# 例子: 
user = User.new
user.name = "David"
user.occupation = "Code Artist"
# user.save  调用save就可以保存到数据库了
读取
# 返回所有用户组成的集合
users = User.all

# 返回第一个用户
user = User.first

# 返回第一个名为 David 的用户
david = User.find_by(name: 'David')
更新
# 简单的更新
user = User.find_by(name: 'David')
user.name = 'Dave'
user.save

# 用update方法
user = User.find_by(name: 'David')
user.update(name: 'Dave')

# user = User.find_by(name: 'David')
user.update(name: 'Dave')

# 批量修改
User.update_all "name = 'cwh'"
删除
user = User.find_by(name: 'David')
user.destroy

你可能感兴趣的:(rails 简单增删改查)