루비의 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]}'"
)
.
그러나 결과를 Newid에 가져 오는 것 같습니다.내가 가진 유일한 가치는 [# <헤더>] 누구나 루비에 대한 올바른 문을 만드는 데 도움이 될 수 있습니까?
편집 : 표 필드
----------------------------------------------------------------------------------- | transaction_type | transaction_year | transaction_id | customer_id | uid | date | -----------------------------------------------------------------------------------.
고맙습니다.
해결책
머리글 객체 (ID로 채워집니다)를 얻으므로 NewID.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