我有 2 个 Rails 应用程序,并且有一个服务可供两者使用。我已将该服务重构为一个可以被两个 Rails 应用程序利用的 gem。
以gem中定义的服务为例
class MyService
def method_that_uses_a_model
ApiModel.create({})
end
end
但是模型是在rails应用程序中定义的
class ApiModel
end
作为 gem,该服务可以访问将在其中使用它的 Rails 应用程序中的 Rails 模型吗?
如果没有,我如何从 gem 中访问 Rails 应用程序中定义的模型?
是的。尽管这意味着您的宝石非常脆弱。您最好提供该类作为 gem 的配置选项,这样您的应用程序就会设置该配置选项,甚至在应用程序的初始化程序中的 gem 中设置一个常量。