首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails原始SQL示例

Rails原始SQL示例
EN

Stack Overflow用户
提问于 2013-02-12 10:22:51
回答 4查看 299.7K关注 0票数 286

如何将此代码转换为原始sql并在rails中使用?因为当我在heroku中部署这段代码时,会出现请求超时错误。我认为使用原始sql会更快。

@payments = PaymentDetail.joins(:project).order('payment_details.created_at desc')
@payment_errors = PaymentError.joins(:project).order('payment_errors.created_at desc')

@all_payments = (@payments + @payment_errors)
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-02-13 03:48:23

您可以这样做:

sql = "Select * from ... your sql query here"
records_array = ActiveRecord::Base.connection.execute(sql)

然后,records_array将成为数组中的sql查询结果,您可以遍历该数组。

票数 505
EN

Stack Overflow用户

发布于 2016-09-20 22:13:47

您可以使用ActiveRecord执行原始查询。并且我将建议使用SQL块

query = <<-SQL 
  SELECT * 
  FROM payment_details
  INNER JOIN projects 
          ON projects.id = payment_details.project_id
  ORDER BY payment_details.created_at DESC
SQL

result = ActiveRecord::Base.connection.execute(query)
票数 38
EN

Stack Overflow用户

发布于 2019-03-08 22:02:37

我想使用ActiveRecord类的exec_query,因为它返回查询转换为对象的映射,所以当主题是Raw SQL时,使用对象迭代变得非常实用和高效。

示例:

values = ActiveRecord::Base.connection.exec_query("select * from clients")
p values

并返回这个完整的查询:

[{"id": 1, "name": "user 1"}, {"id": 2, "name": "user 2"}, {"id": 3, "name": "user 3"}]

仅获取值列表的步骤

p values.rows

[[1, "user 1"], [2, "user 2"], [3, "user 3"]]

仅获取字段列的步骤

p values.columns

["id", "name"]
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14824453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档