私は最近、バージョンが に依存していresources_controller
たため、 の gem バージョンから に切り替えました。 plugin
gem
git
vendor/plugins/plugin/lib/plugin.rb
ファイル内でRailtie
は、次のようになります。
module Ardes
module ResourcesController
class Railtie < Rails::Railtie
initializer 'ardes.resources_controller' do
ActiveSupport.on_load(:action_controller) do
extend Ardes::ResourcesController
include Ardes::ResourcesController::RequestPathIntrospection
end
ActiveSupport.on_load(:active_record) do
include Ardes::ActiveRecord::Saved
end
end
end
end
end
イニシャライザの 1 つにa を追加しましたがrequire 'resources_controller'
、このファイルを適切にロードしています。問題は、Railtie
が評価される (puts
クラス ブロック内の a がヒットする) にもかかわらず、実際には初期化ブロック自体を呼び出すようには見えないことです。これは、メソッドActionController
を含めるために拡張する場所であるため、もちろん重要です。resources_controller_for
この質問は、こことここで出てきたようです。どちらの場合も、問題を回避する他の方法を見つけましたが、ブロックが呼び出されなかった理由について直接的な回答はありませんでした。
Rails docs で私が言えることから、初期化ブロックに好きな名前を付けることができ、実行する必要があります。問題ではないと思いますrails s -e production
が、開発モードでも同じ問題が存在すると思いますが、本番環境で実行しているときに最初に問題に気付きました。
何が起こっているのでしょうか?
参考までに、完全なプラグインはこちら: https://github.com/ianwhite/resources_controller