[RUBY-ON-RAILS] Heroku가에서 작업을 실행 2.3 스타일의 플러그인과 중단 경고 레일
RUBY-ON-RAILSHeroku가에서 작업을 실행 2.3 스타일의 플러그인과 중단 경고 레일
나는 레일 3.2로 업그레이드하고, 갈퀴 DB를 실행 해요 : 마이그레이션 나에게 양식의 몇 가지 오류를 제공합니다 :
이 참조있어 또 다른 플러그인 디렉토리가 - 무엇 곤혹있어 내 공급 업체 / 플러그인 디렉토리가 비어 있다는 것입니다?
해결법
-
==============================
1.당신에게 Heroku를 사용하고 있습니까?
당신에게 Heroku를 사용하고 있습니까?
rails_12factor 보석은 레일 4 필요합니다.
최근 2013-08만큼, Heroku가 항상 심지어 권장 보석과 애플 리케이션, 레일 3 응용 프로그램을 플러그인을 주입. 이것은 루비 buildpack에 문제가 있었고, PR (11)에 의해 고정, 2013년 8월 6일에 합병했다.
-
==============================
2.당신은 시도 할 수 있습니다
당신은 시도 할 수 있습니다
::ActiveSupport::Deprecation.silenced = true
당신의 production.rb에 그냥 소음 이후.
-
==============================
3.에서 설정 / environment.rb에 추가 :
에서 설정 / environment.rb에 추가 :
ActiveSupport::Deprecation.silenced = true
레일을 초기화하기 전에, 너무 좋아 :
# Load the rails application require File.expand_path('../application', __FILE__) ActiveSupport::Deprecation.silenced = true # Initialize the rails application MyApp::Application.initialize!
마찬가지로 당신의 Rakefile 상단에있는 침묵의 설정 삽입 레이크 작업에 사용하지 않도록 경고하기 :
# Load the rails application require File.expand_path('../application', __FILE__) ActiveSupport::Deprecation.silenced = true # Initialize the rails application MyApp::Application.initialize!
선택적으로 만 생산 침묵 블록이 포장 할 수 있습니다 :
if ENV['RAILS_ENV'] == "production" ActiveSupport::Deprecation.silenced = true end
-
==============================
4.내가 찾은 가장 좋은 방법은 여기에 설명되어 있습니다. 이것은 당신이 검색하고 이전 스타일의 플러그인을 할 수 있기 때문에이 문제를 발견 가정한다.
내가 찾은 가장 좋은 방법은 여기에 설명되어 있습니다. 이것은 당신이 검색하고 이전 스타일의 플러그인을 할 수 있기 때문에이 문제를 발견 가정한다.
내가 배포 된 응용 프로그램의 어떤 맛을 기반으로, 내 카피 스트라 노 배포 중에 / 플러그인을 해제 할 수 있도록 필요한 때문에, 모든 부분에서 만들기 그것을하지 보석으로 갔다. 내가 config.plugins을 사용하기 전에 사용 플러그인을 지정합니다. 이 방법을 내가 대신 config.before_configuration의 "요구"사용하고 있습니다.
-
==============================
5.그냥 /lib/silence_heroku_warnings.rb에 다음과 원숭이 패치를 넣어
그냥 /lib/silence_heroku_warnings.rb에 다음과 원숭이 패치를 넣어
module Rails class Plugin < Engine alias :not_silenced_initialize :initialize def initialize(root) ActiveSupport::Deprecation.silence{ self.send :not_silenced_initialize, root } end end end
그것을 필요로의 설정 / application.rb 단지 레일을 요구 후 :
require 'rails/all' require File.expand_path('../../lib/silence_heroku_warnings', __FILE__)
2.X 스타일 플러그인의 모든 중단 된는 침묵해야한다. 기타 중단 된이 표시됩니다.
-
==============================
6.여기, 경고를 침묵보다 깨끗한 방법은 당신이 할 수있는 것입니다.
여기, 경고를 침묵보다 깨끗한 방법은 당신이 할 수있는 것입니다.
로거 주입을 위해 당신은 자레드 벡 위에서 그의 답변에서 언급 한 Heroku가의 새로운 보석을 사용하려고 할 수 있습니다.
우리가 대신 한 일은 이것이다 :
당신은 당신의 공급 업체 / 플러그인 폴더에 같은 이름의 디렉토리가있을 경우 자신의 플러그인을 주입에서 Heroku가 억제 할 수 있습니다. 폴더는 존재해야합니다. Heroku가 다음의 플러그인을 주입하지 않으며, 어떤 코드가없는 경우, 레일은 중단 경고와 객체하지 않습니다. 우리는이 점을 설명하는 readme 파일을 넣어 :
vendor/plugins/rails_log_stdout/readme.md
로깅을위한 Heroku가의 주입 플러그인의 목적은 (그렇지 않은 파일에, STDOUT로 전송하는 로그를 요구한다)에게 Heroku 스타일의 로깅을 설정하는 것입니다. 그 뒤를 얻으려면, 우리는 내가이 답변에 설명 된 것을했다. 우리가 하나의 돌에 두 마리를 가지고 있으므로에게 Heroku의 기본 동작을 비틀기는, 어쨌든 유니콘을 위해 필요했다.
-
==============================
7.사용 중단 통지를 침묵의 새로운 방법입니다 :
사용 중단 통지를 침묵의 새로운 방법입니다 :
config.active_support.deprecation = :silence
당신의 설정 / 환경 / production.rb 파일입니다.
-
==============================
8.Heroku가 마침내이 문제를 해결 한 것 같습니다.
Heroku가 마침내이 문제를 해결 한 것 같습니다.
Injecting plugin 'rails_log_stdout' Injecting plugin 'rails3_serve_static_assets' Add 'rails_12factor' gem to your Gemfile to skip plugin injection
from https://stackoverflow.com/questions/9027403/rails-2-3-style-plugins-and-deprecation-warnings-running-task-in-heroku by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 이 속성 또는 메서드를 지원하지 않는 개체 윈도우 64 비트 레일 (0) | 2020.02.05 |
---|---|
[RUBY-ON-RAILS] 루비 온 레일즈에서, 어떻게 "일 10 월 5 일"에서와 같이 "일"접미사로 날짜를 포맷합니까? (0) | 2020.02.05 |
[RUBY-ON-RAILS] 루비 온 레일즈는 클래스와 필드를 선택 form_for (0) | 2020.02.04 |
[RUBY-ON-RAILS] 레일 - 고안 - 처리 - devise_error_messages을 (0) | 2020.02.04 |
[RUBY-ON-RAILS] 새 응용 프로그램을 만들 때 레일을 버전을 지정하면 사용 (0) | 2020.02.04 |