I would add it to application controller:
before_filter :load_date
def load_date
@monday = (Time.now).at_beginning_of_week
end
So it will be accessible in all of yours controllers and views. If you want to use it in your models, then probably you need it as some param, on example for scopes. Then your controller is place where you should pass this variable to model:
@models = MyModel.before_date(@monday)
I don't think you need to have only one instance of this variable for whole application. Initializing it is quite simple. Also it is not good when you initialize it and don't use it. For me it is hard to imagine that you need it in all of your controllers and actions.
The other way is you can define class:
class MyDate
def self.get_monday
Time.now.at_beginning_of_week
end
end
And put it in config/initializers
(probably there is better place where to put it). Then you can access it from anywhere in your application:
MyDate::get_monday