레일즈에서 여러 개의 db records를 한 번에 수정하고 싶다면? update_all 을 쓰자 ! (How to update db records at once in Ruby on Rails)



## 레일즈에서 여러 개의 db records를 한 번에 수정하고 싶다면? update_all 을 쓰자 ! (How to update db records at once in Ruby on Rails)

만약 `User` 라는 모델이 있고, `loginname`, `name`,  `role` 라는 `column` 이 있다고 가정한 후 example 을 봅시다.



모든 user 의 role 을 "customer" 로 변경해봅시다. 아래와 같이 하면 끝!

```
User.update_all(role: "customer")
```

이럴 일이 있을지는 모르겠지만, loginname 을 name 으로 모두 바꿔야한다면?

```
User.update_all('name = loginname')
```



너무 간단하죠? 다만 Active Record callbacks 또는 validations 이 트리거되지 않기 때문에(예를 들어 user를 update하는 경우 무엇을 한다. 또는 user를 update할 때 무엇을 validation 한다.) 이 점을 참고해야해요 ! 또, callbacks 이 트리거되지 않아서 updated_at, updated_on column 들이 자동적으로 update되지 않는다는 점을 참고해야해요 !



댓글

이 블로그의 인기 게시물

부트스트랩 사용 시 버튼 오른쪽 정렬하는 방법 (How to use float-right for right align in bootstrap)

맥(Mac)에서 MySql 사용 시 Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 오류가 발생하는 경우 해결 방법

HTML, CSS - footer fixed (foot 하단 고정 시키기)