Я могу дать вам способ CakePHP (который изначально был разработан как рельсы).
Все модели CakePHP расширяют один и тот же родительский AppModel, а все контроллеры расширяют AppController.
Я бы сделал пустой параметр в AppModel, который представляет ваш объект. Затем в AppController я бы сохранил объект в параметре текущей модели, если объект существует. В CakePHP AppController есть обратный вызов beforeFilter (), который запускается перед любым кодом в контроллере. Идеальное место для проверки объекта и его сохранения в модели - это любой эквивалентный Rails этого обратного вызова beforeFilter.
Это если все модели не используют объект. Если это так, вы можете поместить параметр только в Модели, которые его используют (вместо родителя), а затем в beforeFilter AppModel вы можете сначала проверить, имеет ли Модель этот пустой параметр.
Я знаю, что это не Ruby, но это будет выглядеть так:
public function beforeFilter() {
if (isset($this->{$this->modelName}->yourObjectParameter)) {
$this->{$this->modelName}->yourObjectParameter = $this->yourObject;
}
}
$this->modelName
- строка, соответствующая названию текущей модели. { }
вокруг $this->modelName
в PHP называется сложным синтаксисом. Он в основном преобразует строку в объект модели. Не уверен, как сделать то же самое в Ruby.