Ruby on rails 新手学习第七天

Ruby on rails 新手学习第七天
学习资料:
https://sg552.gitbooks.io/happy_book_rails/content/part3_rails_premier/rails_tutorial_from_view.html
https://www.bilibili.com/video/BV1RJ411W7N3?p=1

学习目标:
CRUD

学习内容:
1.READ
Ruby on rails 新手学习第七天
find_by!: 加上!当发生异常时会抛出异常
find_by_sql: 直接传入sql语句 (当项目非常大,关联非常多,sql非常复杂时需要使用)
Model.where:
User.where([“id = ? and username = ?”, 3, “code”]).first
u = User.where(id = 3) , u = User.where(username = “code”) #持续叠加条件,与上面一行效果相同

n + 1查询
n : 每行数据都要再进行一次查询
1 : 第一次查询列表所有数据
浪费时间,需要避免
#includes 指定内部要关联哪些数据,rails自动缓存加快运行速度

2.UPDATE
Ruby on rails 新手学习第七天
Model.update_attributes title: “", content: "
Model.update_attribute :title, “*”
Model.changed?当前是否有已修改没保存的?
Model.changed_attributes 哪些字段修改了没保存?

!方法
save!
create!
update_attributes!
更新失败会抛出异常Ruby on rails 新手学习第七天

Ruby on rails 新手学习第七天

Ruby on rails 新手学习第七天
Ruby on rails 新手学习第七天
Ruby on rails 新手学习第七天
Ruby on rails 新手学习第七天
Ruby on rails 新手学习第七天
!](https://img-blog.****img.cn/20200721145843511.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzY0NTU0NQ==,size_16,color_FFFFFF,t_70)
Ruby on rails 新手学习第七天
Ruby on rails 新手学习第七天
Ruby on rails 新手学习第七天

Ruby on rails 新手学习第七天

Ruby on rails 新手学习第七天

Ruby on rails 新手学习第七天

Ruby on rails 新手学习第七天
Ruby on rails 新手学习第七天
rails g model / rails g migration
=> rake db:migrate / rake db:rollback (STEP=n *回滚多次)/ rake db:migrate:status

up / down :更新 / 回滚