Mysql
 sql >> Database >  >> RDS >> Mysql

quando stavo usando l'alias find_by_sql, mi sono confuso

Stai caricando attivamente Books dal database, quindi AREL cerca di mappare la tua dichiarazione selezionata al modello. In questo caso, associa la data al borrow_date attributo e lo converte in un oggetto Date. La formattazione originale selezionata non è più rilevante poiché è stata analizzata in un oggetto che ha le proprie regole per la stampa della data.

La tua seconda selezione funziona poiché probabilmente non c'è alcun attributo con quel nome sul tuo Book modello, quindi non può essere mappato a un tipo specifico, quindi semplice String viene utilizzato.

Potresti semplicemente aggiungere una funzione come formatted_borrow_date al tuo modello o usa un aiuto per formattare il borrow_date utilizzando i metodi ruby ​​per evitare l'hardcoded SQL e la formattazione della data.