PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Ruby:Como substituir parâmetros dinamicamente na gem nativa do PG


Espaços reservados (por exemplo, $1 , $2 , ...) são para valores. Um nome de banco de dados (ou nome de tabela, nome de coluna, ...) é um identificador. Isso é semelhante à diferença entre o nome de uma variável e o valor que a variável mantém em Ruby.

Se você precisar inserir dinamicamente um identificador em algum SQL, precisará usar a interpolação de string e o propósito especial quote_ident para certificar-se de citá-lo corretamente. Então algo mais assim:
db_name = conn.quote_ident(db_name)
res     = conn.exec("CREATE DATABASE #{db_name}")