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

Rails ignora constantes na instrução SQL SELECT


O que faz você pensar que sua constant não está lá? Do manual fino :

Destaque meu. Então, se você disser isso:
a = TableName.find_by_sql("SELECT id, name, 1 AS constant FROM table_name")

então você pode dizer a.first.constant e receber algo de volta. Observe que o costume inspect a saída que você provavelmente está vendo no console não incluirá constant como inspect do AR só conhece as colunas da tabela; você verá coisas assim no console:
[#<TableName id: 6, name: "Pancakes">, ...]

mas os objetos responderão a constant chamadas com '1' s; sim, eles provavelmente serão strings, você terá que resolver as conversões de tipo por conta própria.