Question

Je dois exécuter ces SQL ci-dessous, mais je n'ai pas pu obtenir le résultat.

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]}'"
)

Mais je n'arrive pas à transmettre le résultat à newid.La seule valeur que j'ai obtenue était [#u003CHeader> ] Quelqu'un peut m'aider à créer la bonne déclaration pour Ruby?

MODIFIER:Champs du tableau

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

Merci.

Était-ce utile?

La solution

Vous obtenez un objet d'en-tête (qui sera rempli avec une pièce d'identité), alors je pense que dans votre cas, NEWID.ID vous donnera réellement l'identifiant que vous recherchez, ou si vous voulez un tableau de ces valeurs.:

headers = Header.find_by_sql(...)
header_ids = headers.collect(&:id)

htth

Autres conseils

Ce que vous récupérez du find est un tableau d'objets d'en-tête.

headers = Header.find_by_sql(...)
newid = headers.first.id

Je pourrais me demander pourquoi j'ai besoin du id cependant

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top