Le framework Rails fournit un large nombre de helpers pour les assets, dates, formulaires, les nombres et les models d’objet. Ces helpers sont disponibles par défaut dans les templates (view).
Les helpers sont utilisés dans rails dans le but de séparer une certaine logique de traitement des templates et de les regroupés au sein d’un module disponible et réutilisable au sein votre application. Cette manière de procéder est propre et recommandée aux développeurs rails.
Par défaut chaque controller peut inclure des helpers. Ces helpers sont seulement accessible dans les controllers à travers la méthode de classe #helpers.
Dans les précédentes versions de Rails, les controllers pouvaient inclure automatiquement les helpers qui portent le même nom que le controller, exemple : MyController pouvait inclure automatiquement MyHelper. Vous pouvez toujours utiliser cette possibilité en changeant dans la configuration la valeur de :
config.action_controller.include_all_helpers=false
les helpers additionnel peuvent être spécifier en utilisant la méthode de class « helper » dans ActionController ::Base ou dans n’importe controller en héritant de lui.
La méthode to_s de la méthode class Time peut être utilisé dans un helper pour afficher un message personnalisé si l’objet Time est vide.
module FormattedTimeHelper def format_time(time, format=:long, blank_message=" ") time.blank? ? blank_message : time.to_s(format) end end
La méthode « FormattedTimeHelper » peut maintenant être inclut dans un controller en utilisant la méthode de class helper
class EventsController < ActionController::Base helper FormattedTimeHelper def index @events = Event.all end end
Alors dans chaque vue rendu par le controller « EventController », la méthode de class format_time peut être appelé
<% @events.each do |event| -%> <p> <%= format_time(event.time, :short, "N/A") %> | <%= event.name %> </p> <% end -%>
Pour finir nous avons deux événements dont l’un avec une date et l’autre sans date, donc aurons un résultat comme suit :
23 Aug 11:30 | Carolina Railhawks Soccer Match N/A | Carolina Railhawks Training Workshop
Lire aussi : Ruby On Rails: Les 6 raisons de l’utiliser pour développement web
Par Amos
Leave a Comment