ActiveRecord SQL personalizada en Rubí
-
16-09-2020 - |
Pregunta
Necesito realizar estas SQL a continuación, pero no pude conseguir el resultado.
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]}'"
)
Pero me parece que no puede obtener el resultado a newid.El único valor que me dieron fue [#<Header>] Alguien me puede ayudar a crear la afirmación correcta para Ruby?
EDITAR:Campos de la tabla
----------------------------------------------------------------------------------- | transaction_type | transaction_year | transaction_id | customer_id | uid | date | -----------------------------------------------------------------------------------
Gracias.
Solución
Está obteniendo un objeto de encabezado (que se rellenará con una identificación), así que creo que en su caso NewID.ID realmente le dará la identificación que está buscando, o si desea una matriz de estos valores.:
headers = Header.find_by_sql(...)
header_ids = headers.collect(&:id)
hth
Otros consejos
Lo que está recibiendo de vuelta de la find
es una Matriz de Cabecera de los objetos.
headers = Header.find_by_sql(...)
newid = headers.first.id
Quizá me pregunto por qué tengo la necesidad de id
a pesar de que
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow