我正在创建一个Rails引擎来增强主机应用程序,专门用于帮助开发。例如,引擎将具有一个用户界面,允许您在主机应用程序中打开或关闭功能,以便开发人员可以在任何一种情况下查看应用程序的执行情况。
最初我打算从引擎内部的父应用程序扩展模型,但我找不到直接的方法来做到这一点。
我理解,一般来说,这种方法将两个应用程序紧密耦合,因此它不一定是理想的,但在我的实例中,耦合是可以接受的,因为引擎仅用于开发此特定应用程序。
我已经看过在引擎内部创建装饰器并将它们包含在父级中 - 我特别不喜欢这个想法,因为装饰器仅用于 用于开发目的而我不是想要包括去生产的任何东西。
我愿意接受有关最佳方法的建议。有什么想法吗?
感谢。
编辑 - 添加清晰度......
我们有一个难以推理的遗留应用程序。通常,表/字段中的值组合起作用以确定是否启用了某个功能以及它的行为方式。我们的想法是创建一个专门用于帮助新老团队成员了解某个特定功能(或打开它)的引擎,而无需知道要在db中查看或切换的字段组合。
作为这个想法的扩展,假设我想在UI中显示功能X
已启用。如果X
为model.foo
且true
为model.bar
,则会启用功能false
。我不想拥有if model.foo is true and model.bar is false then feature X is on
的模板逻辑,而是希望能够定义一个说if model.feature_x_enabled? then feature X is enabled
的方法。
我可以把这个逻辑放在应用程序模型中,但它现在只能由引擎使用,添加这种类型的东西不会让应用程序本身更容易理解。所以我想在引擎内找到一个很好的封装。
我希望更有意义。