DB의 index와 rails가 기억하는 index가 틀려 duplicate 에러가 나는 경우


Server/Ruby on the Rails 2020. 10. 22. 14:16



ActiveRecord::Base.connection.tables.each do |t|

  ActiveRecord::Base.connection.reset_pk_sequence!(t)

end


WRITTEN BY
ShakeJ

트랙백  0 , 댓글  1개가 달렸습니다.
  1. 비밀댓글입니다
secret

건프라 삼국창걸전 SD를 세울 디오라마를 만들어보자!


취미/건프라 2020. 9. 29. 21:29



무미건조하게 장식장에 놔두는 것보다 나만의 디오라마를 만들어서 도색한 건프라들을 얹어 놓으면 참 좋겠다는 생각에, 

무작정 다이소로 향하여, 

컬러흙, 플라스틱 화분, 플라스틱 받침대를 구매함. 

 

(솜을 사서 흙먼지를 표현하고 싶었으나, 솜을 안팔아서 패스)

(깃발도 만들고 싶었으나 고민하다가 패스)

(천사점토나 다른 점토를 사고싶었으나, 파는게 컬러흙이라는 제품밖에 없었음)

 

컬러흙을 반죽해서 덕지덕지 얹어줍니다. 

잘 섞어서 올렸더라면 많이 갈라지지 않았을텐데, 너무 덕지덕지 발랐는데 많이 갈라져서 당황. 

이왕 갈라진 거 가뭄이 온 땅이라고 생각하자!

점토를 올린 뒤 오랜시간 말려주어야 하는데, 기다리기 지루하신 분들은 택배박스에 만든 디오라마를 넣고, 

드라이기를 안으로 넣어 5분가량 말려주면 마치 오븐처럼 잘 마름

말린 뒤, 검은 서페이서를 칠하고, 
또 다시 말린 뒤, 바예호 Sand Yellow 를 베이스로 이색 저색 올리기

돌은 공원에서 주워왔습니다! 순간접착제로 꾸욱 붙여주기.

바예호 블랙워시로 명암도 표시해보고,

완전히 마음에 들진 않지만 꽤 괜찮다!

넓은 받침대는 오토바이를 탄 여포를 위한 디오라마,

요건 흙보다는 검은 바위처럼 표현해보기

간단하게 만들었음에도 불구하고, 장식장에 전시용으로는 굿!


WRITTEN BY
ShakeJ

트랙백  0 , 댓글  0개가 달렸습니다.
secret

건프라 아크릴 붓도색 - 영원히 고통받는 자쿠


취미/건프라 2020. 9. 9. 01:10



최근 건프라 + 아크릴 도색에 푹 빠졌는데, 딱히 공유할 곳도 없고 정리할 겸, 블로그에 글도 너무 안쓰고 있어, 

기록 겸 남겨보려고 함. 

 

평소에 일할 때 치열하게 고민하며 집중을 해야 하는데, 

건프라 조립 + 도색을 할 때에는 집중은 하되 별 고민 없이 집중을 해도 되니, 

뭔가 힐링되는 느낌. 

 

바예호 아크릴 물감과 서페이서, 바니시, 붓을 사고 웻팔레트도 만들어서 

무작정 도색을 시작했다. 

 

왜인지 모르겠으나, 항상 도색의 테스트 타겟이 되는 자쿠 SD!

아마 둥글둥글하니 뭔가 색칠하기에 편해보이는 느낌이라 그런 듯. 

 

요건 조립만 하고 먹선을 처음 연습해볼 때, 먹선만 넣은 자쿠! 

그냥 저냥 깔끔하다. 

 

건프라를 알게되면서 자연스럽게 도색을 알게 됨. 

색상이 덜 분할되어 있는 SD의 특성 상 도색을 하면 완성도가 올라간다고 함. 

무작정 수성사인펜으로 칠했더니 안마른다! 

절대 안마른다! 

물에 고이 씻어 건담마커로 풀도색을 하겠어! 라는 생각에 건담마커를 2세트 구매했다. 

 

무슨색을 하지, 

한참을 고민을 하다 검빨이 진리지 라는 생각에 무작정 검빨로 색칠을 시도. 

 

테스트겸 부분만 색칠을 해본다ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

마음 내키는 대로 건담 마커로 색칠! 

건담마커의 촉이 커서 뒷머리 부분같이 얇은 곳 색칠이 어렵다. 

무늬도 마음 내키는 대로 그려보고, 

도끼에 피도 그려봤는데 (곰곰히 생각해보니, 건담은 로봇인데 피가 나오나..??)

 

건담마커의 한계를 느끼고, 

도색을 알아보니, 

대략 3가지 도색이 존재했다. 

 

락카 도색

아크릴 도색

애나멜 도색

락카도색은 에어부스에, 집안에서 하기 애매하고, 냄새나고, 마스크 써야하고, 날씨좋을 때 마감제 뿌려야하고.. 으아아 이건 취미가 아니다.

애나멜보다는 아크릴 쪽이 더 땡겨서 바예호 물감과 서페이서 등등을 구매.

역시나 첫 테스트 타겟은 자쿠

 

검빨은 보았으니, 이번엔 핑크다!!

무작정 건담마커로 칠한 위에 서페이서를 바르고, 핑크로 칠해보았다. 

 

빨간색과 흰색을 섞어 핑크색을 조색하여 색칠을 진행! 

빛반사 표현은 고민도 없이 이리저리 마구잡이로 해서 첫 도색인걸로 만족하는 걸로.. 

 

마감제까지 발랐으니 이제 자쿠를 놓아줘야겠다. 

 


WRITTEN BY
ShakeJ

트랙백  0 , 댓글  0개가 달렸습니다.
secret

소니 WH-1000XM4 후기 (M1에서의 업그레이드!)


IT Story/하드웨어 이야기 2020. 8. 28. 14:57



소니 WH-1000MX1을 오랫동안 쓰다가 WH-1000MX4로 업그레이드 차 구매.

 

외관은 큰 차이는 없음. 크기도 거의 동일함. 다만 무광이라 유광보다는 훨씬 느낌이 좋으며 가벼움. 로고와 마이크 부분도 고급스러움. 

(가방에 MX1 잘 들어감!)

가방이 매우 마음에 듬. 지퍼에 소니 로고가 박혀있으며 부들부들한 면 소재. M1가방보다 훨씬 마음에 듬. 

 

노이즈 캔슬링은 두개 번갈아 껴보았는데, M4가 더 약한 느낌(?). 

M1이 조금 더 무디게 소음을 잡아내는 느낌. 이게 더 최신방식의 노이즈 캔슬링인가! 

나는 혼자 바닷속에 있는 듯한 느낌이 좋은데! (대중교통이나 비행기 탈일은 거의 없고, 일할 때만 씀)

 

음질은 M1은 저음 위주로 매우 강하게 때려박는 편이면, M4는 중고음도 엄청 마음에 듬. 소리를 애지간히 키워도 클리어하게 들림. 

음질은 매우매우 만족. 

 

앱을 통한 설정에 아주 깜짝 놀랐음. (M1도 앱에서 이런 기능이 되었던건지는 모르겠음)

노이즈 캔슬링을 10단계로 세분화해서 조절하는데, 조절하는 것에 따라 위에 배경이 진해지고 옅어지는 UI에 감탄. 

한국어로 변경했더니 어색한 발음에 웃겼음 (전원 켬. 전원 끔. 아주 충실한 번역에 어색한 기계음)

다중 연결을 하면 LDAC 코덱이 꺼진다고 하여 안 켬. (주로 폰과 맥으로 연결해서 사용)
기압까지 체크한다고 나와있음. 

이퀄라이저 기능은 매우매우 훌륭.

 

360 리얼리티 오디오용 90일 무료 쿠폰을 받았는데, 이미 멜론 HiFi를 쓰고 있어서 패쓰. 

 

M1을 오래써서 아직 귀에 감기는 느낌이 불편한데 쓰다보면 괜찮아질듯. 

전반적으로 매우매우 만족. 
(내돈주고 내가 산 후기임)


WRITTEN BY
ShakeJ

트랙백  0 , 댓글  0개가 달렸습니다.
secret

KFC 이벤트 100% 당첨!?


IT Story/마케팅이야기 2020. 5. 26. 22:33



 

KFC 100% 당첨 이벤트를 진행중인 곳이 있어 소개드립니다! 

아메리카노 3잔 / 징거버거세트 / 타워버거세트 / 치킨 1조각 / 텐더 4조각 중
100% 1개를 추첨하여 쿠폰을 제공해주는 착한 이벤트입니다 :) 


친구 초대 시 무제한으로 쿠폰을 획득할 수 있다고 합니다! 

접속 후 "KFC 배너를 클릭"하고 가입하시면 바로 룰렛돌리기가 가능합니다!

 

bit.ly/2TzQeY7


WRITTEN BY
ShakeJ

트랙백  0 , 댓글  0개가 달렸습니다.
secret

넷기어 R8000 속도저하 펌웨어 업데이트 하지마세요!


IT Story/네트워크 이야기 2020. 5. 21. 22:40



넷기어 R8000을 사용하다 TV뒤에 숨기느라 위치를 이동. 

이동하면서 겸사겸사 펌웨어를 업데이트. 

갑자기 Wifi 가 끊기거나 (거의 매일 1회 이상), Wifi 속도가 엄청 저하 (속도기록 측정 시 기존 대비 30% 이하 속도로 측정)

Smart Connect 도 껐다 켜보고, 펌웨어 설정을 모두 바꿔보고, 심지어 암호화방식이 속도에 영향을 미친다기에 변경해봐도, 

전원을 껐다 켜봐도, 혹여 위치를 옮겨 발열 때문일까 싶어 위치를 다시 바꿔보고, 랜선을 바꿨는데도 여전히 불안정.

공장초기화를 해도 증상이 동일해서 보증기간도 끝나고 나름 비싼 녀석인데 공유기의 수명은 2년인가... 새로 바꿔야 하나 하다가, 
혹여나 하는 마음에 구글링을 했더니, 동일한 증상의 Thread를 발견! 

community.netgear.com/t5/Nighthawk-WiFi-Routers/Nighthawk-X6-R8000-slow-after-Firmware-update-to-1-0-4-46/m-p/1828223

 

Nighthawk X6 R8000 slow after Firmware update to 1.0.4.46

Long story short, Firmware version 1.0.4.46 reduced throughput on my Netgear Router by half! Rolling back to 1.0.4.28_10.1.54 resolved the issue.   Long story.  I was experiencing slow internet connectivity on WiFi and cabled systems throughout my home n

community.netgear.com

요약하자면 최신버전인 1.0.4.46에서 나와 동일한 증상이 발견. 

보안상 지역코드 문제인지 .. R8000을 한국에서 많이 안팔린건지 국내에는 별달리 검색되는 자료가 없어 포스팅함.

https://www.netgear.com/support/product/r8000.aspx#download

 

R8000 — Nighthawk X6 AC3200 Tri Band WiFi Gigabit Router

Find setup help, user guides, product information, firmware, and troubleshooting for your Nighthawk X6 R8000 on our official NETGEAR Support site today.

www.netgear.com

새로 추가된 Armor 등 기능이 R8000과 일부 충돌이 나는건지... 

다운그레이드는 쉬우므로 이전버전 중 1.3.54로 다운받아 다운그레이드하니 다시 공유기가 정상으로 돌아옴!


혹시 같은 이슈 겪는 분들은 참고 바래요~


WRITTEN BY
ShakeJ

트랙백  0 , 댓글  1개가 달렸습니다.
  1. 감사합니다. 덕분에 공유기 firmware downgrade하고 문제를 어느정도 잡았습니다.
    제 경우에는 글쓴이님 보다 높은 버전의 firmware R8000-V1.0.4.28_10.1.54 로 해도 되더군요

    더불어 제가 확인해보니 일반적으로 IPTV를 함께 쓰기 위해서 설정하는 고급기능, VLAN을 활성화하면 속도가 많이 느려집니다.
    그래서 이 기능을 비활성화하고 IPTV는 다른 추가 LAN PORT선을 활용해 공유기를 거치지 않고 연결하도록 하면 됩니다.
    정리하면, 인터넷모뎀 -> 1) 공유기, 2) IPTV로 연결 + VLAN 기능 비활성화 입니다.
    방법: [고급] -> [고급설정 ] -> [VLAN/IPTV 설정] -> VLAN/IPTV 설정 사용을 비활성화 하면 속도가 빨라지는 걸 볼 수 있습니다.

    출처: https://envyz.tistory.com/50 [질투의 화신, 엔비]
secret

Rails autoloader :zeitwerk 방식 *업데이트 중


Server/Ruby on the Rails 2019. 5. 27. 10:31



지난번 Rails 5.2에서 6.0으로 업그레이드를 진행하면서, 기존에 사용했던 방식에 에러가 발생!

[Controller]

A

B
C

 

C는 B를 상속, B는 A를 상속하는 상황에서, B에 before_action 내에서 A의 함수를 호출 시, 5.2에서는 문제 없이 진행되나, 

6.0에서는 에러를 발생(A의 함수를 가지고 오지 못하는 케이스)가 있었음. 

결국 C의 입장에서 before_action을 실행했을 때 A의 함수를 가지고 오지 못하는 문제점을 살펴보다, 

6.0부터는 autoloader가 default로 true이고, 방식이 :classic이 아닌, :zeitwerk을 사용하는 부분에서 해당 에러가 발생하는 것을 확인함. 

(application.rb에 config.autoloader = :classic 방식을 사용하겠다고 명시하면 에러는 발생하지 않지만, 과연 autoloader와 zeitwerk방식이 무엇인지 확인해보는 걸로)

 

1. autoloader는 무엇인가? 무슨 이점이 있는가?

 

https://guides.rubyonrails.org/autoloading_and_reloading_constants.html

 

Autoloading and Reloading Constants — Ruby on Rails Guides

Ruby on Rails allows applications to be written as if their code was preloaded. In a normal Ruby program classes need to load their dependencies: require 'application_controller' require 'post' class PostsController < ApplicationController def index @posts

guides.rubyonrails.org

Rails는 코드를 preload하고 사용할 수 있음.

일반적으로 ruby 프로그램은 아래와 같이 require로 명시를 해준 뒤 사용을 함.

 

require 'application_controller'
require 'post'
 
class PostsController < ApplicationController
  def index
    @posts = Post.all
  end
end

Rails의 Rubyist들은, 좀 더 빠르게 이 방식을 바꾸고자 했음. 만약 class가 이름으로 정의되어 있다면, 자동으로 해당 클래스를 import하면 되지 않을까? 자동으로 의존성을 찾기 위해 미리 파일을 스캔할 수도 있지만, 이 방식을 에러가 나기 쉬울 것이다.

 

나아가 Kernel#require는 파일을 한번만 읽어오지만, 읽어온뒤 파일 변경 시 변경사항을 반영할 수 있다면, 서버를 재시작하지 않고 개발을 좀 더 편리하게 할 수 있을 것이다. 그래서 Rails는, 따로 require을 하지 않고 사용이 가능하다.

class PostsController < ApplicationController
  def index
    @posts = Post.all
  end
end
class Project < ActiveRecord::Base
end


Project = Class.new(ActiveRecord::Base)


Project.name # => "Project"

우리가 자주 사용하는 class A < B 를 사용 시 A = Class.new(B)와 같다고 보면 되며, .name의 경우 side effect로 저장되어 A로 나오게 됨.

 

우리가 자주 세팅하는 eagar_loading (미리 모두 읽어오는 방식)의 경우 개발환경처럼 파일들이 '자주' 변하지 않기 때문에, 일반적으로 eagar_loading = true로 사용하며, 자동으로 읽어오더라도

 

class BeachHouse < House
end

와 같은 코드 실행 시 미리 가져온 클래스들 중 House가 발견되지 않았다면, Rails는 자동으로 로딩함. 

****** 자동 로딩 알고리즘 ****** 

class PostsController < ApplicationController
  def index
    @posts = Post.all
  end
end

Ruby는 class나 moudle 키워드 뒤에 오는 상수를 탐색함.

클래스나 모듈이 사용된 부분에서 처음 생성한 것인지, 혹은 이전에 생성한 것인지 확인하기 위해서임. 

 

해당 시점에 정의되어 있지 않다면, 자동 로딩을 하지 않음. (당연한 이야기처럼 들리지만)

PostsController내의 메소드 실행 시 PostsController가 정의되어 있지 않았다면, 자동로딩이 아니라 새로운 컨트롤러를 생성함. 

 

반대로 뒤에 붙는 ApplicationController가 지금까지 생성되지 않았다면, Rails는 자동 로딩이 실행 됨 (상수이므로)

가장 처음 app/assets/application_controller.rb를 탐색하고, 다음 경로로 app/controllers/application_controller.rb를 탐색함. 

module Admin
  class BaseController < ApplicationController
    @@all_roles = Role.all
  end
end

Role을 로딩하려는 순간, 이루어지는 일은, 

Role을 자동로딩하려고 부모의 네임스페이스나 자기자신에게서 Role이 정의되어 있는지를 체크함. 
1. Admin::BaseController::Role을 찾고, 
2. Admin::Role을 찾고, 
3. Role을 찾게 됨

 

실패할 경우, autoload_paths에 경로의 폴더내에 해당 파일들을 찾게 됨 

이후 더 자세한 내용은 문서참조.

 

Autoloader라는 것은, 기존 ruby에서는 require로 명시된 클래스를 가져오지만, ruby on rails는 이를 조금 더 편리하게 사용하기 위해, 

require로 명시를 하지 않고, 클래스나 모듈 등 상수가 정의될 때, 자동으로 우선순위에 따라 이름 등의 규칙을 통해 자동으로 가져오는 방식을 의미함. 

 

2. zeitwerk방식과 classic 방식의 차이는?

 

현재 Ruby on rails 6 Guide는 나오지 않은 상태라, 따로 정보를 찾아야 하는 상황.

 

5월 16일 Rails Core team member Xavier Noria presents Zeitwerk 이벤트가 있었음. 
https://www.meetup.com/ko-KR/Barcelona-on-Rails/events/nrfkgqyzhbvb/

 

Rails Core team member Xavier Noria presents Zeitwerk

2019년 5월 16일 (목) 오후 7:00: Our local Rails Core team member Xavier Noria (@fxn) wrote the new gem Zeitwerk to replace the autoloading mechanisms used in Rails. It will be shipped as part of Rails 6.Bef

www.meetup.com

내용은, Rails 6에서 변경되는 autoloading mechanism에 사용되는 Zeitwerk 방식에 대한 내용.

찾았다!

https://www.youtube.com/watch?v=YSc_GNQP6ts

https://speakerdeck.com/fxn/zeitwerk-a-new-code-loader?slide=3

 

Zeitwerk: A new code loader

These are the slides of my talk at RubyKaigi 2019, where I present Zeitwerk, a new code loader for Ruby projects.

speakerdeck.com

Zeitwerk는 autoloading, eager loading, reloading을 하며, 의존성을 가지지 않고 어떤 ruby project에도 사용 할수 있다더라. 

파일의 이름을 상수의 Path로 사용하며 (기존 Rails가 사용하던 방식과 동일하게 User 모델일 경우 user.rb로, hotel/pricing.rb인 경우 Hotel::Pricing 사용하는 것처럼)

(Coreteam 멤버인 Noria 씨가 기존 Rails의 자동로딩을 개선시키면서 다른 루비프로젝트도 사용할 수 있게 Zeitwerk로 나온듯)

 

호출될 때 hash table에서 찾아서 맵핑을 하게 되는데, 
첫번째 클래스는, (relative constants)는 호출될 때 먼저 Hotel을 호출하고, 그 다음 Pricing module을 호출한다. 
두번째는 모듈을 호출할 때 특정 모듈 안에 포함된다고 호출한다. 
...[업데이트 중]



기존 Rails의 classic 방식의 제한사항 * 기존 방식의 제한사항에 대한 이해가 쉬운 예제나 이슈 찾아보기
* The nesting is unknown

* relative/qualified is unknown

* const_missing is the last step 

 

* Non thread-safe 
(기존 방식의 non thread-safe한 예시 : https://stackoverflow.com/questions/38587612/example-of-something-that-is-not-thread-safe-in-rails)

In order for reloading to be thread-safe, you need to implement some coordination. For example, a web framework that serves each request with its own thread may have a globally accessible RW lock. When a request comes in, the framework acquires the lock for reading at the beginning, and the code in the framework that calls loader.reload needs to acquire the lock for writing.

On reloading, client code has to update anything that would otherwise be storing a stale object. For example, if the routing layer of a web framework stores controller class objects or instances in internal structures, on reload it has to refresh them somehow, possibly reevaluating routes.


발견된 문제 사항

 

bin/rails zeitwerk:check 을 통해 현재 zeitwerk방식에 맞지 않는 케이스를 찾아준다. 

* knock gem은 아직 지원을 하지 않는다 :( 

zeitwerk방식을 사용 시, 

UserTokenController <- Knock::AuthTokenController 

  def auth_params

  end 

end 

 

인 경우 당연스럽게 UserTokenController의 auth_params 메서드가 오버라이드 되어 실행되어야 하는데, AuthTokenController의 auth_params 메서드가 불린다. (autoload의 순서를 찍어보니, UserTokenController를 먼저로드하고, 이후에 authTokenController가 로드된다 / load의 순서가 바뀌더라도 override가 안된다는 건 기본 문법이 파괴되는 부분인데 뭔가 이상)

 

대부분의 gem들이 현재 zeitwerk방식을 지원하지 않고 있고, 만약 zeitwerk를 호환한다고 하면 레일즈 버전 호환성 문제도 생길텐데... 내가 뭘 잘못 이해하고 있나싶어, 관련 내용을 zeitwerks를 개발한 Noria에게 메일을 보내보니, 오히려 문제로 볼만한 좋은 description이란 내용의 메일을 받아 rails github에 bug report로 올려놓은 상황. Gem들을 미리 로딩해놓고 이후 application 내 controller들을 autoload하면 zeitwerk방식을 지원하지 않는 gem들과도 호환성문제가 없어지지 않을까란 생각. (https://github.com/rails/rails/issues/36381


WRITTEN BY
ShakeJ

트랙백  0 , 댓글  0개가 달렸습니다.
secret

Rails upgrade 5.2 to 6.0


Server/Ruby on the Rails 2019. 5. 24. 21:33



Rails 5.2.0 to 6.0.0 

* 6.0 에서 ActionText를 사용할 수 있다! 흥미로움

 

1. Rails 6은 Ruby 2.5.0 이상 버전에서 동작 

2. rails app:update 를 실행

3. config.load_defaults in config/application.rb 변경하기 

 

config.load_defaults 6.0

 

application.rb에 Rails.autoloaders.logger = method(:puts) 입력 시 레일즈 시작할때 autoloads되는 것들을 볼 수 있음. 


https://edgeguides.rubyonrails.org/6_0_release_notes.html

 

Ruby on Rails 6.0 Release Notes — Ruby on Rails Guides

Ruby on Rails 6.0 Release NotesHighlights in Rails 6.0: Action Mailbox Action Text Parallel Testing Action Cable Testing These release notes cover only the major changes. To learn about various bug fixes and changes, please refer to the change logs or chec

edgeguides.rubyonrails.org

https://guides.rubyonrails.org/autoloading_and_reloading_constants.html#common-gotchas

 

Autoloading and Reloading Constants — Ruby on Rails Guides

Ruby on Rails allows applications to be written as if their code was preloaded. In a normal Ruby program classes need to load their dependencies: require 'application_controller' require 'post' class PostsController < ApplicationController def index @posts

guides.rubyonrails.org

 

원인을 찾는 중 

 

상속관계
ApplicationController (get_current_user)
AdminController (before_action: verify_admin 내에서 ApplicationController의 get_current_user 호출 불가)

BController  

....대체 왜 6.0에서는 불가능한것이지?
원인은 찾음. 6.0부터는 autoloading 방식이 :zeitwerk이 기본
(방식에는 :zeitwerk and :classic 두가지가 존재하는데, 6.0 이전에는 :classic 방식을 사용했었음)
만약 서비스 중인 어플리케이션이라면, application.rb 에 config.autoloader = :classic으로 세팅 후 사용하는 것이 나을 듯 
zeitwerk autoload 방식은 https://mnworld.co.kr/1909 으로 업데이트 중

 

https://weblog.rubyonrails.org/2019/2/22/zeitwerk-integration-in-rails-6-beta-2/

 

Zeitwerk integration in Rails 6 (Beta 2)

The second beta of Rails 6 is about to ship, and includes Zeitwerk integration.

weblog.rubyonrails.org

https://github.com/fxn/zeitwerk/issues/19

 

eager_load difference between autoloader classic, bug or feature? · Issue #19 · fxn/zeitwerk

Hi, I noticed that when I used config.eager_load=true or ran the Jumpstart template in production which overrides the Devise helper https://github.com/excid3/jumpstart/blob/c6c0de0a9493c617297746eb...

github.com

https://medium.com/@fxn/zeitwerk-a-new-code-loader-for-ruby-ae7895977e73

 

Zeitwerk: A new code loader for Ruby

This post presents Zeitwerk: A new code loader for Ruby in which I have been working during the last months.

medium.com

skip_before_action :verify_authenticity_token 이슈도 살펴봐야 함

 

수정 시 puma가 controller 로딩 못하는 상황 

begin
  load File.expand_path('../spring', __FILE__)
rescue LoadError => e
  raise unless e.message.include?('spring')
end

bin/rails에 추가 



model에 override된 메서드가 동작을 안함..

-> https://github.com/rails/rails/issues/36100

-> https://github.com/rails/rails/issues/35749

 

Zeitwerk breaks override pattern · Issue #36100 · rails/rails

Steps to reproduce Follow https://edgeguides.rubyonrails.org/engines.html#overriding-models-and-controllers create an override (monkey patch) for a class This works before 6.0.0.rc1 (including 6.0....

github.com

Override 이슈 -> 해당이슈도 https://mnworld.co.kr/1909에서 같이 정리 중.

 

그 외,

features.where(awesomeness: 10..) 와 같이 endless ranges가 가능
bin/rails db:system:change --to=postgresql 명령어를 쓰면 sqlite에서 postgresql로 바로 변경이 가능 


WRITTEN BY
ShakeJ

트랙백  0 , 댓글  0개가 달렸습니다.
secret