Rails:运行 原始 sql 查询返回额外信息并构建模型

Rails: Run raw sql query returning extra info and build models

在rails中,我如何从数据库中获取原始sql结果,然后然后将其中的一部分变成活动记录对象。

更具体地说,假设我有一个 select 语句,如:“SELECT comments.*, c1.sort_order, c2.sort_order” 我想构建每一行一个 Comment 对象,然后是 运行 comment.setpath(c1, c2)。我确定有一个函数可以构建对象并进行所有转换,但我可能无法搜索它似乎无法找到它。


请注意,我在该站点上发现了很多问题,这些问题解释了如何执行原始 sql 模型 table 中的 returns 行并自动执行变成行为对象或获取原始数据库值。我想获取原始数据,收集我需要的额外信息并将我的一些结果转化为 activerecord 对象。

你是不是想做这样的事情:

ActiveRecord::Base.connection.execute("sql here").map do |hash|
  new_info = harvest_info(hash)
  Comment.new(hash.merge(new_info)) if some_requirement?
end