sql >> Databasteknik >  >> RDS >> Mysql

När jag använde find_by_sql alias blev jag förvirrad

Du laddar aktivt Books från databasen, så AREL försöker mappa din select-sats till modellen. I det här fallet mappar den datumet till borrow_date attribut och konverterar det till ett Date-objekt. Den ursprungliga formateringen du valde är då inte längre relevant eftersom den tolkades till ett objekt som har sina egna regler för att skriva ut datumet.

Ditt andra val fungerar eftersom det förmodligen inte finns något attribut för det namnet på din Book modell, så den kan inte mappas till en specifik typ, så vanlig String används.

Du kan helt enkelt lägga till en funktion som formatted_borrow_date till din modell eller använd en hjälpare för att få den att formatera borrow_date använder ruby-metoder för att undvika hårdkodad SQL och datumformatering.




  1. hur man ändrar tidsstämpelformat i mysql

  2. Mysql2::Fel:Felaktigt strängvärde

  3. SQL, hjälptalstabell

  4. hur ser ett B-trädindex på mer än 1 kolumn ut?