如何将此代码转换为原始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)
发布于 2013-02-13 03:48:23
您可以这样做:
sql = "Select * from ... your sql query here"
records_array = ActiveRecord::Base.connection.execute(sql)
然后,records_array
将成为数组中的sql查询结果,您可以遍历该数组。
发布于 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)
发布于 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"]
https://stackoverflow.com/questions/14824453
复制相似问题