Вопрос

Мне нужно выполнить эти 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.Единственное значение, которое я получил, был [#

] Любой может помочь мне создать правильное утверждение для Ruby?

Редактировать: поля таблицы

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

Спасибо.

Это было полезно?

Решение

Вы получаете объект заголовка (который будет заполнен идентификатором), поэтому я думаю, что в вашем случае newid.id фактически даст вам идентификатор, который вы ищете, или если вы хотите, чтобы массив этих значений делают:

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

HTH

Другие советы

Что вы возвращаетесь из find, - это массив объектов заголовка.

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

Я могу спросить себя, почему мне нужен генеракодицетагкод, хотя

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top