Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

quando eu estava usando o alias find_by_sql, fiquei confuso


Você está carregando ativamente Books do banco de dados, então o AREL tenta mapear sua instrução select para o modelo. Nesse caso, ele mapeia a data para o borrow_date atributo e o converte em um objeto Date. A formatação original que você selecionou não é mais relevante, pois foi analisada para um objeto que possui suas próprias regras para imprimir a data.

Sua segunda seleção funciona, pois provavelmente não há atributo desse nome em seu Book model, portanto, não pode ser mapeado para um tipo específico, portanto, String simples é usado.

Você pode simplesmente adicionar uma função como formatted_borrow_date ao seu modelo ou use um auxiliar para que ele formate o borrow_date usando métodos ruby ​​para evitar o SQL codificado e a formatação de data.