Wenn dies immer mit einem Modell verwendet wird, ich es in diesem Modell setzen würde. Die self.
vor Ihrer Methodennamen bedeutet, dass es sich um eine Klassenmethode ist, wenn Sie also die Methode wie folgt definieren:
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
Sie es, indem Sie diese verwenden würde:
Milestone.number_of_months(date1,date2)
Oder möchten Sie vielleicht Legen Sie es in das Verzeichnis config/initializers
. Erstellen Sie zum Beispiel einer Datei date.rb
im Verzeichnis mit dem Namen enthalten:
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
Dies als Klasse Methode, um die Date-Klasse zur Verfügung stehen wird.
Meine erste Antwort, bevor ich bemerkte, dass Sie erwähnen, dass die Methode in Controllern und Modellen verwendet werden muss. Helfer werden für Ansichten verwendet, dies wird Ihnen wahrscheinlich nicht behilflich sein.
Dies sollte eine Hilfsmethode sein. Es gibt ein Hilfsmodul für jeden Controller, aber es gibt auch einen anwendungsweiten. Es ist in Ordnung, diese Methode einzusetzen, stellen Sie sicher, dass es sich nicht um eine Klassenmethode handelt (entfernen Sie die self.
). Wenn Sie die Methode dem Anwendungshilfsprogramm nicht hinzufügen möchten, können Sie die Deklaration helper
in einem Controller zusammen mit dem zugehörigen Helpermodul verwenden. Wenn die Methode in date_range_helper.rb
lautet, verwenden Sie helper :date_range
.