【发布时间】:2014-01-07 22:29:41
【问题描述】:
我错过了什么吗?相同的控制台,相同的代码库,不同的数据库连接。结果:返回不同的对象类型。如果使用 MySQL,我们得到一个数组数组,如果使用 PostgreSQL,我们得到一个哈希数组。
示例类
class User < ActiveRecord::Base
...
end
class Series < ActiveRecord::Base
establish_connection postgres_database_hash
...
end
使用 MySQL 连接
> User.connection.execute('SELECT * from users limit 2').to_a
(211.0ms) SELECT * from users limit 2
=> [[1, "jmetta", "jmetta@gmail.com"], [2, "johnmetta", "jmetta+test@gmail.com"]]
使用 Postgres 连接
> Series.connection.execute('SELECT * from series limit 2').to_a
(107.1ms) SELECT * from series limit 2
=> [{"id"=>"29", "enr_id"=>"114118", "ent_id"=>"164",}, {"id"=>"30", "enr_id"=>"114110", "ent_id"=>"164"}]
尾声
看起来,在这个抽象级别,to_a 被要求给出结果,结果应该是相同的。
【问题讨论】:
标签: mysql ruby-on-rails postgresql rails-activerecord