【Rails6】DEPRECATION WARNING: Single arity template handlers are deprecated. Template handlers must now accept two parameters, the view object and the source for the view object.

Rails6 업데이트 후, rails 기동시에 다음의 Warning을 토하게 되어 버린 것을 조사·해결한 메모입니다.
DEPRECATION WARNING: Single arity template handlers are deprecated. Template handlers must
now accept two parameters, the view object and the source for the view object.
Change:
  >> #<#<Class:0x00007ffbbcf57de0>:0x00007ffbbf219590>.call(template)
To:
  >> #<#<Class:0x00007ffbbcf57de0>:0x00007ffbbf219590>.call(template, source)

TL;DR


$ bundle update slim

에서 해결.

환경


  • Ruby: 2.6.3
  • Rails: 5.2.4.1 => 6.0.2.1로 업데이트

  • 뭐야 이 Warning



    우선 메시지의 내용을 살펴 보겠습니다.template handler 주위의 인터페이스에 변경이 들어가, Single arity template handlers 가 비추천이 된 것 같습니다. 알겠습니다.
    https://魏tub. 소 m/오리 ls/오리 ls/bぉb/V6.0.2.1/아c지온비에w/ぃb/아c지온_비에w/손MP아/반dぇrs. rb#L46-L56

    권장되는 수정 내용은
    Change:
      >> #<#<Class:0x00007ffbbcf57de0>:0x00007ffbbf219590>.call(template)
    

    그렇다고 해서, 자전의 어플리케이션의 코드가 원인이 되지 않을 것 같다.
    아무래도 view 주위의 Gem이 수상할 것 같아, 라고 아타리를 붙입니다.  

    slim이 수상한가?



    템플릿 엔진에 슬림을 사용했기 때문에 slim의 issue를 잡아 보겠습니다.



    그런 분위기의 issue를 발견. 게다가 Close 완료.
    htps : // 기주 b. 코 m / s ぃ m mp

    안을 보면, 이 issue 로 보고되고 있는 에러 내용과는 다른 모양이었습니다.
    하지만 코멘트를 서서히 흘려보면,

    htps : // 기주 b. 코 m / s ぃm mp


    이런 코멘트가 있었으므로, htps : // 기주 b. 코 m / s ぃ m mp 도 봅니다.



    오, 이것. 같은 Warning이다.
    코멘트를 보면,

    htps : // 기주 b. 코 m / s ぃm mp ぁ테 / s ぃ m / 이스에 s / 827 # 이스에 코멘 t-478240650


    분명히 slim이 의존합니다 사원

    덧붙여서 사용하고 있던 temple 의 버전은 0.8.0 이었습니다.

    temple이 수상한가?



    마찬가지로 temple issue도 낚시하자마자 발견되었습니다.
    htps : // 기주 b. 코 m / 슈도 fyr / 테 mp ぇ / 이스에 s / 122
    htps : // 기주 b. 코 m / 준 fyr / 테 mp / 푸 1 / 121

    수정 내용을 살펴보면, 아-그렇구나, 라는 느낌.
    htps : // 기주 b. 코 m / 준 fyr / 테 mp / 푸 1 / 121 / 후 ぇ s


    이미 수정 버전이 출시되었으므로,
    다음 명령을 실행하여 slim 당 temple을 업데이트합니다.
    $ bundle update slim
    

    무사히, Warning을 해소할 수 있었습니다.

    좋은 웹페이지 즐겨찾기