8월, 2020의 게시물 표시

https://mznetblog.wordpress.com/2016/04/29/includes-vs-eager_load/

https://mznetblog.wordpress.com/2016/04/29/includes-vs-eager_load/

https://blog.bigbinary.com/2016/05/30/rails-5-adds-or-support-in-active-record.html

https://blog.bigbinary.com/2016/05/30/rails-5-adds-or-support-in-active-record.html

https://www.honeybadger.io/blog/a-beginner-s-guide-to-exceptions-in-ruby/

https://www.honeybadger.io/blog/a-beginner-s-guide-to-exceptions-in-ruby/

find each

https://medium.com/@minhyeok4dev/activerecord-batches-%EC%A0%9C%EB%8C%80%EB%A1%9C%EB%A7%8C-%EC%9D%B4%ED%95%B4%ED%95%B4%EB%8F%84-100%EB%B0%B0-%EB%B9%A8%EB%9D%BC%EC%A7%84%EB%8B%A4-53f253bd5a51

inverse of

https://medium.com/carwow-product-engineering/improving-performance-using-rails-inverse-of-feature-dc97b37df6a7

레일즈에서 여러 개의 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되지 않는다는 점을 참고해야해요 !

루비 온 레일즈에서 devise gem 없이 로그인 기능 구현하기 4, 마지막 (How to build authentication system without devise gem in Ruby on Rails)

## 루비 온 레일즈에서 devise gem 없이 로그인 기능 구현하기 4, 마지막 (How to build authentication system without devise gem in Ruby on Rails) 쿠키, 세션을 이용해 로그인 기능을 구현해봤습니다.([지난 포스트 참고](http://ghkdgh2365.blogspot.com/2020/07/devise-gem-3-how-to-build.html)) 이번엔 JWT(JSON Web Token)를 이용해 로그인을 구현하겠습니다. 구현 방법은 로그인 요청이 왔을 때, 로그인에 성공하면 서버에서 토큰을 생성한 뒤 클라이언트(브라우저)에게 전달합니다. 이후 클라이언트가 유저에 대한 정보를 요청해야할 때, 받은 토큰을 가지고 서버에 요청해 서버가 토큰 정보를 통해 해당 유저에 대한 정보를 제공합니다. 참고로 로드밸런싱처럼 서버를 확장하거나, 모바일 앱에서 인증을 확인하는데 있어서, 이전 방법보다 JWT가 훨씬 유용하기 때문에, JWT를 이용한 로그인을 많이 사용하고 있는 추세입니다. 그럼 이제 JWT를 이용해 로그인을 구현해보도록 하겠습니다. `개발환경 Ruby 2.7.0 / Rails 6.0.2.2` JWT을 만들기 위해 gem 을 설치하겠습니다. `Gemfile` 파일에 아래와 같이 추가합니다. ``` # JWT 생성 및 사용 gem 'jwt' ``` 추가했다면 저장하고 터미널에 아래와 같이 명령어를 실행합니다. ``` bundle install ``` 설치가 끝나면 `lib` 디렉토리에 가서 `json_web_token.rb` 이라는 파일을 만들고 아래와 같이 코드를 입력해줍니다. 생성된 JWT를 해석할 때 사용됩니다. ``` class JsonWebToken def self.decode(token) return HashWithIndifferentAccess.new(JWT.decode(token, Rails.application.credentials.secret...

rails remote

https://stackoverflow.com/questions/17727004/rails-remote-delete-and-update-view-through-ajax http://carmennorahgraydean.blogspot.com/2012/10/rails-328-ajax-super-basic-example.html https://medium.com/parallel-thinking/stimulus-rails-remote-forms-ca5b3e2f02ed

도커 실행 시 에러 ERROR docker failed: port is already allocated

최근에 도커를 사용해보려고 시도 중이다. `ERROR: for app Cannot start service app: driver failed programming external connectivity on endpoint .. Bind for 0.0.0.0:8000 failed: port is already allocated` 그러다 위와 같은 에러를 만났다. 도커를 실행하려고 하니 위와 같은 에러가 나왔다. 해결책은 [스택오버플로우가...](https://stackoverflow.com/questions/46176584/docker-bind-for-0-0-0-04000-failed-port-is-already-allocated) 나의 경우엔 ``` docker container ls docker rm -f container-name ``` 이와 같은 방법으로 해결했으나 ``` docker container ls docker stop container id ``` 와 같은 방법도 좋은 해결책일 것 같다.

iOS 배포

생각보다 iOS 배포가 쉽게 끝났다. xcode로 product-> Archive 하고 next만 누르다 보면 끝. 다만 아이콘 문제(투명을 없애다던가, 규격대로 맞춰 넣어야한다던가)가 있었을 뿐이다. 배포 후, 한 번 reject 당했는데 그 이유는 product name과 앱스토어에 name이 일치하지 않는다는 이유였다. 일치시키고 나니 앱스토어 통과가 되었다. 내 생각보단 빠르고, 쉽게 앱스토어에 배포되었다. 이제 다시 꾸준히 앱을 개선해서 버전을 올려봐야지. https://apps.apple.com/kr/app/alwayspray-%ED%95%AD%EC%83%81-%ED%95%98%EB%82%98%EB%8B%98-%EC%83%9D%EA%B0%81%ED%95%A0-%EC%88%98-%EC%9E%88%EA%B2%8C-%EC%95%8C%EB%A6%BC/id1495173695