Appearance
Ruby on rails 之初体验
数据建模
rails 提供了数据库建模工具:
bash
bin/rails g model user name:string email:string
这个命令会自动创建两个文件:一个是对应的model文件,一个是对应的数据库操作文件。
然后我们直接填充/修改db/migrate目录下对应文件中的change方法即可。
数据库操作
数据库同步:
bash
bin/rails db:migrate
数据库回滚:
bash
# 默认回滚到上一步
bin/rails db:rollback
# 可以接受回滚步数
bin/rails db:rollback step=1
创建 Controller
创建一个users的controller,并添加create和show方法:
bash
bin/rails g controller users create show
这个命令同时也会帮我们创建对应的路由,但是由于不够精确和完整,所以一般都需要删掉自己重新写。
创建路由
在config/routes.rb文件中可以创建路由:
ruby
# 创建一个 POST 请求,并对应到 users controller 的 create 方法
post '/users', to: 'users#create'
# 创建一个 GET 请求,并对应到 users controller 的 show 方法
get '/users/:id', to: 'users#show'
创建一个用户
修改 users controller 的 create 方法:
ruby
def create
user = User.new name: 'jincheng', email: 'jinchengjoker@foxmail.com'
if user.save
render json: user
else
render json: user.errors
end
end
User.new可以创建一个用户实例。user.save可以保存一个用户实例。render json: user将user数据json序列化后返回。render json: user.errors将保存user的错误json序列化后返回。
数据验证
在 user 的 model 文件中,可以做数据验证:
ruby
class User < ApplicationRecord
# 邮箱为必填项
validates :email, presence: true
end
获取一个用户
修改 users controller 的 show 方法:
ruby
def show
user = User.find_by_id params[:id]
if user
render json: user
else
head 404
end
end
User.find_by_id可以根据id查找用户。params[:id]可以获取id参数。head 404返回 404 状态码。
注意:ruby会根据数据创建的字段自动新增对应的find方法,例如find_by_id、find_by_name、find_by_email等。