Rails和Oracle:执行sql语句并获取所有数据

Bjo*_*sen 4 oracle ruby-on-rails ruby-on-rails-4

我有一个相当复杂的sql语句,它是动态创建的.但是对于简单查询存在同样的问题,因此我以此为例.

我有一个特征模型.我可以打电话Feature.count- > 4

但是,如果我尝试使用ActiveRecord::Base.connection.execute("SELECT ID from features")结果获取所有Feature ID 是一个OCI8::Cursor对象.我不知道如何从中获取数据.

如果我尝试ActiveRecord::Base.connection.execute("SELECT ID from features").fetch我得到[1].随着xyz.fetch_hash我得到{"ID" => 1}.

我想要所有的ID.我刚从PostgreSQL切换到Oracle.

使用PostgreSQL,我得到了所有数据ActiveRecord::Base.connection.execute("SELECT ID from features").to_a,但to_a使用activerecord-oracle_enhanced-adaptergem(*** NoMethodError Exception: undefined method 'to_a' for #<OCI8::Cursor:0x00000007028aa8>)并不存在.

我正在使用Ruby 2.0和Rails 4.除了我手动创建的语句之外,与Oracle数据库的连接正常.

Bjo*_*sen 13

我找到了解决方案.

旧: ActiveRecord::Base.connection.execute("SELECT ID from features")

新: ActiveRecord::Base.connection.exec_query("SELECT ID from features").to_a

也许有人有同样的问题.