Estoy actualizando a Rails 3.2 y ejecutando rake db: migrate me da varios errores de la forma:
ADVERTENCIA DE DEPRECACIÓN: ¡Tiene complementos de estilo Rails 2.3 en proveedores / complementos! El soporte para estos complementos se eliminará en Rails 4.0. Moverlos y agruparlos en su Gemfile, o plegarlos en su aplicación como lib / myplugin / * y config / initializers / myplugin.rb. Consulte las notas de la versión para obtener más información al respecto: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released . (llamado desde at / app / Rakefile: 7)
Lo desconcertante es que mi vendor/plugins
directorio está vacío: ¿hay otro directorio de complementos al que hace referencia?
ruby-on-rails
heroku
ruby-on-rails-plugins
temerario
fuente
fuente
Respuestas:
¿Estás usando Heroku?
La gema rails_12factor también se requiere en los rieles 4.
Tan recientemente como 2013-08, heroku siempre inyectó complementos en rails 3 aplicaciones, incluso aplicaciones con las gemas recomendadas. Este era un problema con el paquete de compilación ruby, y fue corregido por PR 11 , fusionado el 2013-08-06.
fuente
Puedes probar
en tu
production.rb
ya que es solo ruido.fuente
ActiveSupport::Deprecation.behavior = Proc.new { |msg, stack| $stderr.puts msg unless msg =~ /You have Rails 2.3-style plugins/ }
en config / environment.rb agregar:
antes de inicializar los rieles, así:
De manera similar, para desactivar las advertencias en las tareas de rake, inserte la configuración de silenciamiento cerca de la parte superior de su Rakefile:
Opcionalmente, puede envolver esto en un bloque para silenciar solo en producción:
fuente
El mejor enfoque que he encontrado está documentado aquí . Esto es suponiendo que buscado y encontrado esta pregunta porque hacer que los plugins de estilo antiguo.
Fui con Make it not a joya en absoluto , porque necesitaba poder activar / desactivar los complementos durante mi implementación de capistrano, según el sabor de la aplicación que estaba implementando. Antes de usar config.plugins para especificar qué complemento usar. Con este enfoque estoy usando un "require" en config.before_configuration en su lugar.
fuente
Solo pon el siguiente parche de mono en
/lib/silence_heroku_warnings.rb
y requerirlo
config/application.rb
justo después de requerir Rails:Todas las degradaciones de los complementos de estilo 2.x deben silenciarse. Aparecerán otras degradaciones.
fuente
Una forma más limpia que simplemente silenciar las advertencias, esto es lo que puede hacer.
Para la inyección del registrador, puede intentar usar la nueva gema de Heroku que Jared Beck mencionó en su respuesta anterior .
Lo que hicimos en su lugar es esto:
Puede inhibir que Heroku inyecte sus propios complementos si tiene un directorio con el mismo nombre en su
vendor/plugins
carpeta. La carpeta solo necesita existir. Heroku no inyectará su complemento, y si no hay código, Rails no se opondrá con advertencias de desaprobación. Acabamos de poner un archivo Léame que explica esto en:El propósito del complemento inyectado de Heroku para el registro es activar el registro al estilo de Heroku (requiere que los registros se envíen a STDOUT, no a un archivo). Para recuperar eso, hicimos lo que describí en esta respuesta . Los ajustes a los comportamientos predeterminados de Heroku eran necesarios para Unicornio de todos modos, por lo que obtuvimos dos pájaros de un tiro.
fuente
.gitkeep
vendor / plugins / rails_log_stdout.gitkeep
es una convención para mantener un directorio vacío cuando se usa git..gitkeep
es una convención.La nueva forma de silenciar los avisos de desaprobación es:
en tu
config/environments/production.rb
archivofuente
Parece que Heroku finalmente ha abordado esto.
fuente