在Ruby中的ActiveRecord自定义SQL
-
16-09-2020 - |
题
我需要在下面执行这些SQL,但我无法达到结果。
newid=Header.find_by_sql(
"SELECT coalesce(max(transaction_id),0)+1 AS id
FROM transaction_headers
WHERE transaction_year = #{Time.now.year} AND
transaction_type='#{fields[:transaction_type]}'"
)
.
但我似乎无法让结果达到新的。我得到的唯一值是[#
编辑:表字段
----------------------------------------------------------------------------------- | transaction_type | transaction_year | transaction_id | customer_id | uid | date | -----------------------------------------------------------------------------------.
谢谢。
解决方案
您正在获取标题对象(将用ID填充),所以我认为在您的情况下,我会在您的情况下展示您正在寻找的ID,或者如果您想要其中的数组这些值:
headers = Header.find_by_sql(...)
header_ids = headers.collect(&:id)
.
hth
其他提示
从find
返回的是标题对象数组。
headers = Header.find_by_sql(...)
newid = headers.first.id
.
我可能会问自己为什么我需要id
但
不隶属于 StackOverflow