Ich möchte eine Zahl in einem Controller formatieren, bevor Sie sie in eine Zeichenfolge einfügen. Die Funktion number_with_delimiter () funktioniert jedoch nicht in einem Controller. Ich brauche die Zeichenfolge an ein Javascript-Plugin zu senden.
Ich könnte den Code in der Ansicht ausführen, aber ich denke, das ist nicht die beste Option.
%Vor%Gibt es eine alternative Funktion, um das Format von p.price zu ändern?
Um Ihre Frage direkt zu beantworten, fügen Sie Folgendes in Ihren Controller ein (in der Regel oben, unterhalb der Deklaration class
):
Sie können dieses Modul auch in das Modell einschließen (unabhängig von der Klasse p
) und dann eine Funktion schreiben, um den formatierten Preis zurückzugeben.
Der beste Platz für Code wie diesen ist jedoch ein Helfer, nicht der Controller. Der Helfer würde aus der Sicht aufgerufen werden. Ihr Controller sollte so kurz wie möglich sein und keine Ansichtslogik enthalten.
Rails-Controller greifen auf denselben Kontext zu, den der ActionView-Renderer mit der view_context
-Eigenschaft ausführt, ohne mehrere View-Hilfsmodule mischen zu müssen:
Dies hat den Vorteil, dass Sie auf alle Ansichtshelfer sowie auf jede spezielle Konfiguration, die Sie eingerichtet haben, Zugriff haben (z. B. i18n-Einstellungen).
Tags und Links ruby-on-rails