我正在嘗試執行一個查詢,該查詢從存盤在query變數中的用戶輸入中選擇與搜索詞匹配的食譜。這是相關代碼的一部分:
class DatabasePersistence
def initialize(logger)
@db = if Sinatra::Base.production?
PG.connect(ENV['DATABASE_URL'])
else
PG.connect(dbname: "recipes")
end
@logger = logger
end
def search_recipes(query)
p "Query parameter is:"
p query
p query.class
sql = <<~SQL
SELECT * FROM recipes
WHERE labels ILIKE '%$1::text%'
SQL
results = query(sql, query)
# ... more code
end
def query(statement, *params)
@logger.info "#{statement}: #{params}"
@db.exec_params(statement, params)
end
end
執行此行時results = query(sql, query)會引發以下錯誤。
PG::IndeterminateDatatype at /search
ERROR: could not determine data type of parameter $1
另一篇文章建議添加顯式型別轉換,這就是我添加型別轉換的原因。我可能做錯了。我也嘗試過如下:
WHERE labels ILIKE '%text($1)%'
WHERE labels ILIKE '
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/495323.html
標籤:红宝石 PostgreSQL 类sql sql数据类型 皮克
上一篇:根據范圍對數字進行分類
