Ruby on Rails CRUD 之 U(Update)

更新资料常⽤的有 save 、 update 、 update_attribute 及
update_attributes ⽅法:
先找出 1 号候选⼈

candidate = Candidate.find_by(id: 1)

使⽤ save ⽅法

candidate.name = "剪彩伦"
candidate.save

使⽤ update_attribute ⽅法更新单⼀栏位的值(注意:⽅法名字是单数)

candidate.update_attribute(:name, "剪彩伦")

使⽤ update 更新资料,可⼀次更新多个栏位,且不需要再呼叫 save ⽅法

candidate.update(name: "剪彩伦", age: 20)

使⽤ update_attributes ⽅法

candidate.update_attributes(name: "剪彩伦", age: 20)

以上有几点需要说明⼀下:

  1. save ⽅法预设会经过验证(Validateion,在稍後的章节会介绍)流程,如果
    验证失败将无法写入。如果想要跳过验证,可加上 validates: false 参数。
  2. update 跟 update_attributes 这两个⽅法其实只是名字不⼀样,但事实
    上是⼀模⼀样的内容。
  3. 单数的 update_attribute ⽅法会跳过验证(Validation),等於是
    save(validate: false) 的效果,所以在使⽤的时候要稍微注意⼀下。
    另外,也可以直接针对整个资料表下⼿:
Candidate.update_all(name: "剪彩伦", age: 18)

这样就可以⼀⼝气把所有候选⼈的资料的姓名跟年龄都改成⼀样的,但这不⾒得是
你想要的结果,所以在使⽤这个⽅法的时候要特别留意。

参考资料

[为你自己学Ruby on Rails]https://railsbook.tw/chapters/08-ruby-basic-4.html


<<:  [铁人赛 Day04] 如何提升你的 React 网站易用性?(Web Accessibility)(下)- Mouse and pointer events、Development Tools

>>:  Day04 - Parsing Ptt

Golang - html template + wkhtmltopdf生成PDF

以前很菜的时候收过这个需求 真心很讨厌PDF,因为要自己算座标和设定一堆东西 後来这个需求就被弃置了...

Day 03 : Python 基础观念 (2)

昨天初步认识 python 怎麽设定变数的操作,今天我们要聚焦在串列、字典、字串的操作,东西有点多X...

[Day13]空值转换函数

前几篇文章提及过,当资料表数值为空值时有三种情况,分别为: 目前不知道其值 未指派 没有值 但不管是...

SQL Server Agent 权限 - 心得分享

DBABootcamp 没有 SA 权限的使用者,要如何管理 SQL Agent Jobs (作业)...

Day 27 | 状态管理 - BLoC基本介绍

在刚开始学习Flutter时如果读到有关状态管理的文章大部分都会是与「BLoC」相关的内容,虽然真的...