После обновления до rails3.2.1 появляется следующее предупреждение:
У вас есть плагины в стиле Rails 2.3 в vendor / plugins! Поддержка этих плагинов будет удалена в Rails 4.0. Выдвиньте их и объедините в свой Gemfile или сложите в свое приложение как lib / myplugin / * и config / initializers / myplugin.rb. Подробнее см. В примечаниях к выпуску: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released
Я перемещаю свои плагины в каталоге vendor / plugins, но я не знаю, как писать файл config / initializers / myplugin.rb, и Google не может найти ответ.
Я только что прошел через это и обнаружил, что вам просто нужно пройти через каждый плагин, чтобы проверить несколько вещей:
vendor/plugins
vendor/plugins
и переместите ее в lib/plugins
Одна вещь, с которой я столкнулся, заключается в том, что вам необходимо вручную установить все эти плагины. Вот инициализатор, который я создал и поместил в config/initializers/plugins.rb
:
Dir[Rails.root.join('lib', 'plugins', '*')].each do |plugin|
next if File.basename(plugin) == 'initializers'
lib = File.join(plugin, 'lib')
$LOAD_PATH.unshift lib
begin
require File.join(plugin, 'init.rb')
rescue LoadError
begin
require File.join(lib, File.basename(plugin) + '.rb')
rescue LoadError
require File.join(lib, File.basename(plugin).underscore + '.rb')
end
end
initializer = File.join(File.dirname(plugin), 'initializers', File.basename(plugin) + '.rb')
require initializer if File.exists?(initializer)
end
У меня также была проблема инициализаторов, в которых я нуждался для некоторых плагинов, поэтому я переместил эти конкретные инициализаторы в папку lib/plugins/initializers
. Вы должны назвать им имя плагина, поэтому инициализатор для плагина my_plugin
должен быть в файле lib/plugins/initializers/my_plugin.rb
Надеюсь, это поможет!