在Heroku中运行任务的风格插件和弃用警告

我正在升级到Rails 3.2,并运行rake db:migrate,给了我几个形式的错误:

弃权警告:您在供应商/插件中拥有Rails 2.3式插件! 在Rails 4.0中将会删除对这些插件的支持。 将它们移出并将它们捆绑到Gemfile中,或者将它们作为lib / myplugin / *和config / initializers / myplugin.rb折叠到您的应用程序中。 有关更多信息,请参阅发行说明:http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released。 (从/ app / Rakefile调用:7)

有什么令人困惑的是我的vendor/plugins目录是空的 - 是否有另一个插件目录参考?


你在使用Heroku吗?

Heroku将在Rails 3.x应用程序中注入插件。要避免在Rails 3中进行此注入,请在应用程序中包含rails_12factor gem。 (Heroku Ruby支持2013-10-26)

导轨4中也需要rails_12factor gem。

如果您的应用程序中不存在此gem,则在部署期间您将收到警告,并且您的资产和日志将不起作用。 (Heroku上的Rails 4 2013-10-26)

就在2013-08年,heroku总是在rails 3应用程序中注入插件,甚至包含推荐的gem应用程序。 这是ruby buildpack的一个问题,由PR 11修复,于2013-08-06合并。


你可以试试

::ActiveSupport::Deprecation.silenced = true

在你的production.rb因为它只是噪音。


在config / environment.rb中添加:

ActiveSupport::Deprecation.silenced = true 

在初始化rails之前,像这样:

# Load the rails application                                                                                                                                             
require File.expand_path('../application', __FILE__)

ActiveSupport::Deprecation.silenced = true                                                                                                                               

# Initialize the rails application                                                                                                                                       
MyApp::Application.initialize!

与在rake任务中禁用警告类似,在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
链接地址: http://www.djcxy.com/p/81129.html

上一篇: style plugins and deprecation warnings running task in Heroku

下一篇: Requiring a gem inside a gem's rake task