RubyのActiveRecordカスタムSQL
-
16-09-2020 - |
質問
以下の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に結果を得ることはできません。私が得た唯一の価値[#
編集:テーブルフィールド
----------------------------------------------------------------------------------- | transaction_type | transaction_year | transaction_id | customer_id | uid | date | -----------------------------------------------------------------------------------.
ありがとうございました。
解決
ヘッダーオブジェクト(IDが入力されます)を取得しているので、NewID.IDは実際にあなたが探しているIDを実際に与える、またはこれらの値の配列を行う場合:
headers = Header.find_by_sql(...)
header_ids = headers.collect(&:id)
.
hth
他のヒント
find
から戻ってきたものは、ヘッダーオブジェクトの配列です。
headers = Header.find_by_sql(...)
newid = headers.first.id
.
私は私が
のためにid
が必要な理由を自分に尋ねるかもしれません 所属していません StackOverflow