Je souhaite formater un numéro dans un contrôleur avant de l'insérer dans une chaîne. Mais la fonction numéro_with_delimiter () ne fonctionne pas dans un contrôleur. J'ai besoin de la chaîne pour envoyer à un plugin JavaScript.
Je pourrais exécuter le code dans la vue, mais je suppose que ce n'est pas la meilleure option. P> est là une fonction alternative permettant de modifier le format de p.price? p> p>
3 Réponses :
Pour répondre directement à votre question, incluez les éléments suivants dans votre contrôleur (généralement près du sommet, sous la déclaration code> code>): Vous pouvez également inclure ceci module dans le modèle (quelle que soit la classe Le meilleur endroit pour le code comme celui-ci, cependant, est dans une assistante , pas le contrôleur. L'assistant serait appelé de la vue. Votre contrôleur doit être aussi court que possible et ne pas inclure de la logique de vue du tout. P> p> p code> est), puis écrivez une fonction pour renvoyer le prix formaté. p>
Ok, merci beaucoup .. Grand conseil! Je vais vraiment le déplacer à un assistant.
Appelez simplement le sous-jacent Ceci évite, y compris toutes les méthodes d'ActionView dans votre objet inutilement. P> < / p> ActiveSupport :: NumberHelper Code> Méthode directement:
Les contrôleurs de rails ont accès au même contexte que le rendu d'actionView utilise la propriété View_Context CODE> sans avoir à mixer plusieurs modules d'aide à la vue: class BaseController < ApplicationController
def index
# Accessing view the context
logger.info view_context.number_to_currency(34)
end
end
Vous pouvez vous référer à ma réponse ici Stackoverflow.com/Questtions/4467697/...