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 [#

] Chiunque può aiutarmi a creare la dichiarazione corretta per Ruby?

Modifica: campi da tavolo

-----------------------------------------------------------------------------------
| transaction_type | transaction_year | transaction_id | customer_id | uid | date |
-----------------------------------------------------------------------------------
.

Grazie.

È stato utile?

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
scroll top