PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Ruby:come sostituire dinamicamente i parametri nella gemma PG nativa

Segnaposto (ad esempio $1 , $2 , ...) sono per i valori. Un nome di database (o nome di tabella, nome di colonna, ...) è un identificatore. Questo è simile alla differenza tra il nome di una variabile e il valore che la variabile contiene in Ruby.

Se è necessario inserire dinamicamente un identificatore in alcuni SQL, è necessario utilizzare l'interpolazione di stringhe e lo scopo speciale quote_ident metodo per assicurarti di citarlo correttamente. Quindi qualcosa di più simile a questo:

db_name = conn.quote_ident(db_name)
res     = conn.exec("CREATE DATABASE #{db_name}")