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