1

成功安装 ruby​​-0ci8 gem 和 oracle_enhanced 适配器 gem 后,当我尝试启动我的 rails 项目服务器时出现以下错误:

=> Booting WEBrick
=> Rails 3.0.3 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/Library/Ruby/Gems/1.8/gems/activerecord-oracle_enhanced-adapter-1.3.2/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:7: 
ERROR: ActiveRecord oracle_enhanced adapter could not load ruby-oci8 library. 
Please install ruby-oci8 gem. (LoadError)

增强型适配器和 ruby​​-oci8 gem 都出现在我的 gem 列表中。两者都存在于我的 Gemfile 中。为什么适配器找不到oci8库?

我正在运行的一些设置规范:

  • 麦克雪豹 (10.6.8)
  • Ruby 1.8.7 (2009-06-12 补丁级别 174) [i686-darwin10.8.0]
  • 导轨 3.0.3
  • ruby-oci8 (2.0.4) [宝石]
  • activerecord-oracle_enhanced-adapter (1.3.2) [gem]

我看过这篇文章:Rails 3.0.3 - Oracle_enhanced doesn't work。但这没有帮助。还有其他人遇到这个吗?

===============================

回答

我想通了。最后,我在 /usr/local/oracle/instantclient_10_2/ 中的文件结构不正确,我在其中存储了我的 oracle 即时客户端的文件。这就是造成所有问题的原因。基本上,我在第一个目录中嵌套了第二个 Instantclient_10_2 目录,我的 .bash_profile 在第一个目录中查找,而不是在它下面的目录中。

4

3 回答 3

11

sudo apt-get install libaio1

于 2012-07-16T21:21:11.617 回答
2

- 基本上,我在 Gemfile 中添加了以下两行:

  1. gem 'ruby-oci8', '~> 2.0.6'

  2. gem 'activerecord-oracle_enhanced-adapter', '~>1.4.0'

- 然后在命令行上运行以下命令:

捆绑安装

-确保 Gemfile 中没有其他版本的 ruby​​-oci8 或 activerecord-oracle_enhanced-adapter


- 对于常规的 oracle 活动记录适配器,我添加了这些行:

  1. gem 'ruby-oci8', '~> 1.0.4'

  2. gem 'activerecord-oracle-adapter', '~>1.0.0.9250'

- 然后在命令行上运行以下命令:

捆绑安装

我的解决方案来自: Rails 3.0.3 - Oracle_enhanced doesn't work

于 2011-11-16T19:32:48.270 回答
0

此问题已在平台特定问题的 gems 列表中注明。您最可能的解决方案是按照提供的有关如何设置Oracle Instant Client的指南进行操作。

于 2011-08-10T20:01:36.400 回答