与Web应用程序类似,rails也遵循MVC模式,可从一个简单的功能理解rails的MVC
举个例子:实现新增一条数据
- 建模型(表)Modal
bin/rails g model user email:string name:string
在创建的db/migrate/xxx_create_users.rb文件可修改表字段的限制条件
class CreateUsers < ActiveRecord::Migration[7.0]
def change
create_table :users do |t|
t.string :email
t.string :name, limit: 100
t.timestamps
end
end
end
limit: 100 限制为100个字符
- 同步到数据库
bin/rails db:migrate
- 创建路由 Router config/routes.rb
get '/users/:id', to: 'users#show'
post '/users/', to: 'users#create'
当请求post,就会调用UsersController的create方法
- 创建controller 输出 JSON 视图 Controller、Render(View)
bin/rails g controller users show create
创建方法打render相关内容
class UsersController < ApplicationController
def show
render json: 'show'
end
def create
render json: 'create'
end
end
- 验证
发出post请求是否会调用对应的create方法
bin/rails s
curl -X POST http://127.0.0.1:3000/users -v
控制台打印 create
在postgreSQL中查看uses表的确新增了一条!
回滚
step 表示回滚几步
bin/rails db:rollback step=1 // 相当于bin/rails db:rollback
常见的场景是同步数据库后需要回滚
模型与数据库的交互
- 启动控制台
bin/rails c
- 初始化一个新的User对象
Loading development environment (Rails 7.0.7)
irb> user = User.new(email: "chili@x.com", name: "chili")
它只在控制台中的当前时刻可用,未保存到数据库
- 将对象保持到数据库
irb>user.save
- 查看user对象
irb>user
发现当我们保存对象时,对象的id、created_at和updated_at属性Rails会为我们生成好。我们可以借助id查找数据
- 查找 查找id为2的数据
irb>user.find(2)
查找所有数据
irb>user.all
参考: ruby on rails