【发布时间】:2018-06-02 07:08:28
【问题描述】:
如何运行原始 sql 查询并返回 ActiveRecord_Relation 实例?
在 sqlite3 db 和 Rails 4.2 上,ActiveRecords::Base.exec_query(sql) 返回一个 ActiveRecord_Result 实例。 ActiveRecords::Base.execute(sql) 返回一个数组。这很麻烦,因为我无法对返回的对象运行后续的“ActiveRecord 查询”或原始 sql 查询。
更一般地说,我想知道如何在 Rails 中链接“复杂”的 sql 查询。复杂是指我无法通过 ActiveRecords 提供的“ORM 方法”找到一种方法。通过链接,我的意思是出于性能原因,我想将其分解为几个 SQL 查询。示例:我只想运行一次大而重的第一个 SQL 查询,存储结果,然后根据用户行为运行轻量级的 sql 查询。
我目前正在尝试通过使用服务器端处理实现的dataTables 优化数据库可视化。每次用户与表交互时,服务器都必须运行一个不必要的复杂 SQL 查询,因为我无法将其分解为更简单的查询。我查看了以下问题,但找不到令人满意的解决方案:
【问题讨论】:
-
你是怎么解决的?
标签: sql ruby-on-rails activerecord sqlite database-connection