gpt4 book ai didi

ruby - 我如何需要特定版本的 ruby​​ gem?

转载 作者:数据小太阳 更新时间:2023-10-29 06:22:45 25 4
gpt4 key购买 nike

特别是 ruby​​-oci8 gem。我同时安装了 1.0.7 和 2.0.4。我想要 1.0.7。

我可以只需要 oci8,但我没有得到我想要的版本。

irb(main):001:0> require 'oci8'
=> true
irb(main):002:0> OCI8::VERSION
=> "2.0.4"

我可以要求使用文件的完整路径,这有效,但不可移植:

irb(main):001:0> require 'C:\Ruby\lib\ruby\gems\1.8\gems\ruby-oci8-1.0.7-x86-mswin32-60\lib\oci8'
=> true
irb(main):002:0> OCI8::VERSION
=> "1.0.7"

我可以使用 gem 命令来请求我想要的版本,但它似乎并没有真正加载库:

irb(main):001:0> gem 'ruby-oci8', :lib=>'oci8', :version=>'=1.0.7'
=> true
irb(main):002:0> OCI8::VERSION
NameError: uninitialized constant OCI8
from (irb):2

如果加载库,我肯定会喜欢最后一种方法,而不是仅仅确认它存在于我的系统中。我错过了什么?

最佳答案

我的问题是双重的:

1) 将 gem 命令语法与 rails environment.rb 配置文件中的 config.gem 行中使用的语法混淆。

2) 在 gem 命令后未能发出 require 命令。

脚本中的正确用法是:

gem 'ruby-oci8', '=1.0.7'
require 'oci8' # example is confusing; file required (oci8.rb) is not
# same name as gem, as is frequently the case

在 rails 2.3.x environment.rb 文件中的正确用法是:

config.gem "ruby-oci8", :version=>'1.0.7'

感谢 http://www.ruby-forum.com/topic/109100 的人们

关于ruby - 我如何需要特定版本的 ruby​​ gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2693862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com