"Attaching"一个gem到Rails来防止"require"无处不在?
"Attaching" a gem to Rails to prevent "require" everywhere?
一个gem的名字和模块不一样。现在我需要 require
它和 include
在各种类型的文件中,例如控制器和模型。这相当于许多 require
,我不必为其他 gem 做。这是一个 gem 我可以更新。 gem 是否需要配置为 "attached" 到 Rails,如果是这样,我在哪里可以找到执行此操作的说明?
更新:在 Gemfile 中使用 required: "name-of-module" 可以消除所有地方对 require
的需求。仍然想知道,是否可以将 gem 配置为在 Gemfile 中不需要这个?
您需要指定要 Ruby 为您加载哪些文件,因此您需要在 Gemfile 中指定 gem(和 运行 bundle exec ...)或者将 require 放在代码中的正确位置。没有办法解决这个问题。
如果它是您在另一个项目中使用它的同时处理的 gem,那么您可以指定 gem 的路径。喜欢
# Gemfile
source "https://rubygems.org"
ruby '2.6.1'
gem 'my_gem', path: '/home/user/Development/my_gem'
这样,您可以更改 gem 并直接使用它,而无需构建和安装它。
在 Gemfile 中,你可以做这些事情:
# Require a different file than the gem's name
gem 'foo', require: 'bar'
# Install but not require anything.
# You need to manually require the gem somewhere.
gem 'foo', require: false
如果需要,您仍然可以添加版本和平台规范。
现实世界的例子是 ActiveSupport
和 rspec
:
gem 'activesupport', '~> 5.2', require: 'active_support/all'
gem 'rspec', '~> 3.1', group: :test, require: false
一个gem的名字和模块不一样。现在我需要 require
它和 include
在各种类型的文件中,例如控制器和模型。这相当于许多 require
,我不必为其他 gem 做。这是一个 gem 我可以更新。 gem 是否需要配置为 "attached" 到 Rails,如果是这样,我在哪里可以找到执行此操作的说明?
更新:在 Gemfile 中使用 required: "name-of-module" 可以消除所有地方对 require
的需求。仍然想知道,是否可以将 gem 配置为在 Gemfile 中不需要这个?
您需要指定要 Ruby 为您加载哪些文件,因此您需要在 Gemfile 中指定 gem(和 运行 bundle exec ...)或者将 require 放在代码中的正确位置。没有办法解决这个问题。
如果它是您在另一个项目中使用它的同时处理的 gem,那么您可以指定 gem 的路径。喜欢
# Gemfile
source "https://rubygems.org"
ruby '2.6.1'
gem 'my_gem', path: '/home/user/Development/my_gem'
这样,您可以更改 gem 并直接使用它,而无需构建和安装它。
在 Gemfile 中,你可以做这些事情:
# Require a different file than the gem's name
gem 'foo', require: 'bar'
# Install but not require anything.
# You need to manually require the gem somewhere.
gem 'foo', require: false
如果需要,您仍然可以添加版本和平台规范。
现实世界的例子是 ActiveSupport
和 rspec
:
gem 'activesupport', '~> 5.2', require: 'active_support/all'
gem 'rspec', '~> 3.1', group: :test, require: false