Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Als ich den Aliasnamen find_by_sql verwendete, war ich verwirrt

Sie laden gerade Books aus der Datenbank, sodass AREL versucht, Ihre select-Anweisung dem Modell zuzuordnen. In diesem Fall ordnet es das Datum dem borrow_date zu -Attribut und wandelt es in ein Date-Objekt um. Die von Ihnen ausgewählte ursprüngliche Formatierung ist dann nicht mehr relevant, da sie in ein Objekt geparst wurde, das seine eigenen Regeln zum Drucken des Datums hat.

Ihre zweite Auswahl funktioniert, da es wahrscheinlich kein Attribut dieses Namens in Ihrem Book gibt model, also kann es keinem bestimmten Typ zugeordnet werden, also einfach String verwendet wird.

Sie könnten einfach eine Funktion wie formatted_borrow_date hinzufügen zu Ihrem Modell oder verwenden Sie einen Helfer, um das borrow_date zu formatieren Verwenden von Ruby-Methoden, um die hartcodierte SQL- und Datumsformatierung zu vermeiden.