Я хотел бы добавить его в контроллер приложения:
before_filter :load_date
def load_date
@monday = (Time.now).at_beginning_of_week
end
Так он будет доступен во всех контроллерах Yours и взглядов. Если вы хотите использовать его в своих моделях, то, вероятно, вам понадобится его как некоторый параметр, например, для областей. Тогда ваш контроллер место, где вы должны передать эту переменную модели:
@models = MyModel.before_date(@monday)
Я не думаю, что вам нужно иметь только один экземпляр этой переменной для всего приложения. Инициализация довольно проста. Также это не хорошо, когда вы его инициализируете и не используете. Для меня трудно представить, что вам это нужно во всех ваших контроллерах и действиях.
Другой путь вы можете определить класс:
class MyDate
def self.get_monday
Time.now.at_beginning_of_week
end
end
И положил его в config/initializers
(возможно, есть лучшее место, где поставить его). Затем вы можете получить к нему доступ из любой точки приложения:
MyDate::get_monday
Это примерно три контроллера и представления (и я думаю, что только 1 модель) - но я заметил, что я определил его по-разному в трех разных кружевах, поэтому хотел сделать это СУХОЙ. Если бы я положил его в файл/lib, это сработало бы? Будет ли файл иметь имя my_date.rb? – Angela