ACTIVERCORD SQL personalizzato in Ruby
-
16-09-2020 - |
Domanda
Ho bisogno di eseguire questi SQL sotto, ma non ho potuto ottenere il risultato.
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]}'"
)
.
Ma non riesco a ottenere il risultato in newid.L'unico valore che ho ottenuto è stato [#
Modifica: campi da tavolo
----------------------------------------------------------------------------------- | transaction_type | transaction_year | transaction_id | customer_id | uid | date | -----------------------------------------------------------------------------------.
Grazie.
Soluzione
stai ricevendo un oggetto di intestazione (che sarà popolato con un ID), quindi penso nel tuo caso newid.id ti darà effettivamente l'ID che stai cercando, o se vuoi una serie di questi valori:
headers = Header.find_by_sql(...)
header_ids = headers.collect(&:id)
.
HTH
Altri suggerimenti
Cosa stai tornando dal find
è una serie di oggetti di intestazione.
headers = Header.find_by_sql(...)
newid = headers.first.id
.
Potrei chiedermi perché ho bisogno del id
però
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow