Rails3.2.1にアップグレードした後、この警告が発生します。
ベンダー/プラグインにRails 2.3スタイルのプラグインがあります!これらのプラグインのサポートは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が答えを見つけることができません。
私はこれについてブログ投稿を書いたばかりです: 単純な変換方法Rails 2.3 Rails 3.2 のスタイルプラグイン
私はこれを調べたところ、いくつかのことを確認するために各プラグインを調べる必要があることがわかりました。
vendor/plugins
から削除してください。vendor/plugins
のフォルダーを取得し、lib/plugins
に移動します。私が遭遇したことの1つは、それらすべてのプラグインを手動で要求する必要があるということです。これが私が作成して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
にある必要があります。
お役に立てれば!
他の両方の答えは良く、うまくいくようです。
ただし、プラグインがvendor/plugins /.../ libの下の単一の.rbファイルで構成されており、vendor/plugins /.../init.rbが単なる
require 'pluginname'
次に、単一のファイルをlibディレクトリにコピーし、「yourpluginname」を必要とするファイルをconfig/initializersに追加するだけです。
これは、まだ宝石ではないacts_as_ratedプラグインを使用した具体的な例です。
次のファイルconfig/initializers /acts_as_rated.rbを作成します...
'acts_as_rated'が必要
ベンダー/プラグイン/ acts_as_ratedを削除します
RailtieまたはRails :: Engineへの変換については誰も言及していません。
すべてのRubyファイルをgemに移動するだけです[バンドルgemを使用して、摩擦を最小限に抑えて作成してください]。
次に、Railtieのドキュメントを見て[そしてターゲットを見つけるRailsバージョン]:
https://apidock.com/Rails/v3.2.13/Rails/Railtie
この方法で古いプラグインinit.rbをrailtieに変換するのは非常に簡単で、Rails 4+へのパスを提供します。
ビューまたはコントローラーを取得しましたか?その後、代わりにRails :: Engineを使用してください。 gemのエンジンはワークフローの観点から複雑になる可能性がありますが、プラグインをプラグインに変換するのは非常に簡単です。
Railsプロジェクトではなく、gemでテストの構築を開始してください。