如何获取没有模型的表的ActiveRecord查询的结果集?

时间:2013-01-23 20:39:15

标签: mysql ruby-on-rails rails-activerecord

我需要连接到远程MySQL表中的数据,遍历它,并使用ActiveRecord“create”方法,以便执行所有验证和回调。我找到了有多个数据库配置设置的文档,并为每个模型单独分配它们,但这不符合我的需要,因为我不想为一次导入创建模型或迁移。

所以我发现了另一种在AR之外查询数据库的方法:

base = ActiveRecord::Base.establish_connection(
  :adapter  => "mysql2",
  :host     => "XXX",
  :username => "YYY",
  :password => "ZZZ",
  :database => "AAA"
)

results = base.connection.execute("SELECT * FROM programs WHERE 1")

但它返回一个看起来相当不可思议的对象:

#<Mysql2::Result:0x007fdf6e8bb9d8>

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这就是诀窍:

base.connection.select("SELECT * FROM programs WHERE 1")

答案 1 :(得分:0)

看看ActiveModel。您可以将所需的所有功能放在那里,并可以访问诸如验证之类的内容。