Rails:我的应用程序如何判断它是在 MRI 还是 JRuby 中运行?

发布于 2024-12-10 22:08:35 字数 412 浏览 0 评论 0原文

上一个问题中,我问如何告诉我的 Gemfile是选择 JRuby 相关的 gem 还是 MRI 相关的 gem。我得到的答案是在 Gemfile 中执行以下操作:

platforms :jruby do
  gem "activerecord-jdbcsqlite3-adapter"
end

platforms :mri do
  gem "sqlite3"
end

显然,Bundler 中的platforms() 方法知道如何确定我正在运行 MRI 还是 JRuby。有没有其他方法可以在我的程序中判断我正在运行 JRuby 还是 MRI?

In a previous question, I asked how to tell my Gemfile whether to take the JRuby-relevant gems or the MRI-relevant gems. The answer I got was to do the following in the Gemfile:

platforms :jruby do
  gem "activerecord-jdbcsqlite3-adapter"
end

platforms :mri do
  gem "sqlite3"
end

Obviously, the platforms() method in Bundler knows how to figure out if I'm running MRI or JRuby. Is there another way I can tell within my program if I am running JRuby or MRI?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

黑寡妇 2024-12-17 22:08:35

您是否能够像这样区分两者:

case (RUBY_ENGINE)
when 'ruby'
  # ...
when 'jruby'
  # ...
end

如果需要,您可以编写一个方法来为您提供 jruby? 方法:

def jruby?
  RUBY_ENGINE == 'jruby'
end

Are you able to distinguish between the two like this:

case (RUBY_ENGINE)
when 'ruby'
  # ...
when 'jruby'
  # ...
end

You could write a method to give you a jruby? method if required:

def jruby?
  RUBY_ENGINE == 'jruby'
end
じее 2024-12-17 22:08:35

使用 Ruby 2.2.3 Config::CONFIG 给我 NameError: uninitializedconstant Config,但以下方法有效:

y RbConfig::CONFIG

With Ruby 2.2.3 Config::CONFIG gives me NameError: uninitialized constant Config, but the following works:

y RbConfig::CONFIG
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文