Si cela est toujours utilisé avec un modèle je serais ont mis dans ce modèle. Le self.
avant votre nom de méthode signifie que c'est une méthode de classe, donc si vous définissez la méthode comme ceci:
class Milestone < ActiveRecord::Base
def self.number_of_months(start_date,to_date)
# Get how many months you want to view from the start months
(to_date.month - start_date.month) + (to_date.year - start_date.year) * 12 + 1
end
end
utiliser cette fonctionnalité? En faisant ceci:
Milestone.number_of_months(date1,date2)
Ou vous pouvez mettez-le dans le répertoire config/initializers
. Par exemple, créez un fichier appelé date.rb
dans le répertoire contenant:
class Date
def self.number_of_months(start_date,to_date)
# Get how many months you want to view from the start months
(to_date.month - start_date.month) + (to_date.year - start_date.year) * 12 + 1
end
end
Ce sera disponible en tant que méthode de classe à la classe Date.
Ma première réponse avant que je remarque que vous mentionnez la méthode doit être utilisée dans les contrôleurs et les modèles. Les assistants sont utilisés pour les vues, cela ne vous sera probablement pas utile.
Cela devrait être une méthode d'aide. Il y a un module d'aide pour chaque contrôleur, mais il y a aussi un module d'application. Cette méthode est bien à mettre là, assurez-vous simplement que ce n'est pas une méthode de classe (supprimer le self.
). Si vous ne souhaitez pas ajouter la méthode à l'assistant d'application, vous pouvez utiliser la déclaration helper
dans un contrôleur avec le module auxiliaire auquel il appartient, par exemple si la méthode est date_range_helper.rb
, utilisez helper :date_range
.