Für mich sieht es eher wie etwas für eine Hilfskraft aus. Versuchen Sie dies in der Hilfe Ihrer Anwendung:
def formatted_date(date)
date ? date.to_s(:date) : nil
end
Die Formatierung gehört nicht wirklich in das Modell (aus genau dem Grund, den Sie entdeckt haben... es ist lästig, so einen allgemeinen Code in jedes Modell einzubauen).
Wenn Sie wirklich tun wollen, wie Sie aber sagen, dann was Sie tun könnten, ist monkeypatch die ActiveRecord-Superklasse und fügen Sie die Funktion, die Sie in dort wollen. Sie wäre dann für alle Ihre Modelle verfügbar. Beachten Sie, dass Monkeypatching zu unvorhersehbarem und undefiniertem Verhalten führen kann, die Verwendung erfolgt auf eigene Gefahr! Außerdem ist es ziemlich hakelig :)
class ActiveRecord::Base
def formatted_start_date
start_date ? start_date.to_s(:date) : nil
end
end
Fügen Sie diese Methode einfach an einer Stelle ein, die ausgeführt wird, bevor irgendetwas anderes in Ihrer Anwendung ausgeführt wird, und die Methode wird dynamisch zur Basisklasse Ihrer Modelle hinzugefügt, so dass sie für die Verwendung verfügbar ist.
Oder Sie könnten ein Mixin für alle Ihre Modelle erstellen, aber das scheint ein bisschen übertrieben für eine einzige Methode.