Rails 5有条件地在一个宝石中需要一个依赖的宝石

时间:2018-10-17 15:39:41

标签: ruby-on-rails rubygems ruby-on-rails-5.2

我们正在编写一个宝石,其中包括我们几个应用程序中使用的多个常见宝石。我们希望能够有某种配置来要求或不需要某些gem。但是ul { position: fixed; right: 0; top:0; } application.rb是在加载gem之后加载的。因此,我们无法在此处设置配置。以下方法可行,但不是一个好主意,我想知道是否有更清洁的方法来实现

bin / rails。 (在使用中的应用中)

enviroment.rb/*rb

Gemfile(在使用中的应用中)

#!/usr/bin/env ruby

DISABLE_TRANSPORT = true

APP_PATH = File.expand_path('../config/application', __dir__)
require_relative '../config/boot'
require 'rails/commands'

fruit_chain / lib / fruit_chain.rb(我们的宝石)

gem 'fruit_chain'

2 个答案:

答案 0 :(得分:0)

我不确定您到底想要什么...但是,在Gemfile中使用require: false可能会帮助您吗?

# Gemfile

gem 'my_super_gem', require: false

然后在初始化器中require将它们:

# config/initializer/fruit_chain.rb

require 'my_super_gem'

答案 1 :(得分:0)

我遇到了同样的问题,只想到将宝石明确地作为应用程序的责任,然后通过配置将该宝石注入父宝石,并确保它们符合相同的界面。