Rails: сделать удаленный прокси сохраненным с активной записью

Прокси-сервер курса знает идентификатор курса в удаленной системе и извлекает эту информацию при обращении к нему. Пример кода:

class Course < BasicObject
  attr_accessor :course_id, :course_info
[..]
def method_missing(*a, &b)
  if course_info.nil?
    load_course_info
  end
  course_info.send(*a, &b)
end
[...]

def load_course_info
 # this will fetch the course information from a remote server
 # using the course_id
end

Моя проблема: я хотел бы использовать активную запись, чтобы прокси-сервер course_id сохранялся (не информация о курсе), чтобы прокси-сервер помнил, как получить информацию снова на более поздней стадии.

Курс наследует от BasicObject, поэтому я не могу сделать

Course < ActiveRecord::Base

Я предполагаю, что ActiveRecord::Base имеет слишком много методов, чтобы быть полезными в качестве прокси.

Каково решение?

1 ответ

Решение

Нашел ответ по адресу: http://solnic.eu/2011/08/01/making-activerecord-models-thin.html

Петр говорит (если я правильно понял), что сохранение моделей путем прямого наследования от активной записи приводит к загрязнению обязанностей объектов модели / домена. Он показывает, как решить эту проблему, что является более общим решением, чем то, что касалось моего вопроса.

Другие вопросы по тегам