Gem 到 Rails 的当地图书馆
Gem to local libray in Rails
我的老板让我写一个 gem 来为我们的应用程序包装一个 API (canvas) 消费者,我做到了并且成功了,但在最后一刻他问我不要使用 gem 方法,而是创建它的模型...我有一个模糊的想法,即为端点创建模型并将代码放入控制器中,但是 gem 是可以这么说,高度“模块化”,模块需要模块和 类 从其他 类 继承...有没有办法按原样包含所有内容并像本地安装的库一样使用?什么是最好的方法?我的 gem 依赖法拉第 net_http 适配器
我们经常使用 Service object
方法,可以在此处找到一篇很好的文章 https://blog.appsignal.com/2020/06/17/using-service-objects-in-ruby-on-rails.html
基本上,您将代码放在 app/services
中,然后抽象出所有配置和用法,这样您就可以:
result = AppServices::SubscriptionService.new({
subscription_params: {
subscription: @subscription,
coupon: params[:coupon],
token: params[:stripeToken]
}
}).call
例如,您的代码可以存在于 app/services/canvas/lib
中。
我的老板让我写一个 gem 来为我们的应用程序包装一个 API (canvas) 消费者,我做到了并且成功了,但在最后一刻他问我不要使用 gem 方法,而是创建它的模型...我有一个模糊的想法,即为端点创建模型并将代码放入控制器中,但是 gem 是可以这么说,高度“模块化”,模块需要模块和 类 从其他 类 继承...有没有办法按原样包含所有内容并像本地安装的库一样使用?什么是最好的方法?我的 gem 依赖法拉第 net_http 适配器
我们经常使用 Service object
方法,可以在此处找到一篇很好的文章 https://blog.appsignal.com/2020/06/17/using-service-objects-in-ruby-on-rails.html
基本上,您将代码放在 app/services
中,然后抽象出所有配置和用法,这样您就可以:
result = AppServices::SubscriptionService.new({
subscription_params: {
subscription: @subscription,
coupon: params[:coupon],
token: params[:stripeToken]
}
}).call
例如,您的代码可以存在于 app/services/canvas/lib
中。