使用了合并插件的分支的核心插件

在一定程度上,你可以替换/扩展现有类中的逻辑。这可能是扩展捆绑插件的一种方式。你可以编写一个仅添加修改后逻辑的新插件。使用 module prepend

enabled_site_setting :myoverridingplugin_enabled

module ::MyOverridingPlugin
	PLUGIN_NAME = "my-overriding-plugin"

	class Engine < ::Rails::Engine
		engine_name MyOverridingPlugin::PLUGIN_NAME
		isolate_namespace MyOverridingPlugin
	end

	module SomeClassOverrides
		def overriding_method(foo, bar)
			if foo == "something"
				# 执行一些自定义操作
			else
				# 这将调用原始逻辑
				super(f00, bar)
			end
		end
	end
end

after_initialize do
	SomeClass.prepend(MyOverridingPlugin::SomeClassOverrides)
end

我使用此构造函数在特定条件下限制了某些控制器。

1 个赞