我的 Rails gem 可以与使用该 gem 的应用程序中定义的模型交互吗?

问题描述 投票:0回答:1

我有 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 应用程序中定义的模型?

ruby-on-rails model rubygems ruby-on-rails-5
1个回答
0
投票

是的。尽管这意味着您的宝石非常脆弱。您最好提供该类作为 gem 的配置选项,这样您的应用程序就会设置该配置选项,甚至在应用程序的初始化程序中的 gem 中设置一个常量。

© www.soinside.com 2019 - 2024. All rights reserved.