У меня есть приложение rails, которое служит интерфейсом для гибрида данных. Большая часть необходимой мне информации извлекается из программы командной строки с использованием XML-RPC. Помимо этого, мне требуются некоторые дополнительные данные, которые у меня нет другого выбора, кроме как хранить их в базе данных. По этой причине у меня возникают проблемы с определением наилучшего способа разработки приложения.
Я переопределил self.all
и self.find(id)
так, что они полагаются на вызовы super
, а затем "обогащают" объект, определяя его переменные экземпляра для соответствующих данных, извлекаемых из программы с использованием XML-RPC.
Хотя все это кажется довольно запутанным. Например, я думаю, что потерял способность использовать магические искатели (find_by_x
), и я не знаю, сломается ли что-нибудь еще в результате этого.
У меня вопрос: есть ли более логичный и разумный способ сделать это? То есть, проектирование приложения, которое в большинстве случаев зависит от XML-RPC как от своих данных, так и от некоторых данных, хранящихся в базе данных.
Я читал о after_find
. Используя этот обратный вызов, я могу реализовать процесс «обогащения объекта» и запускать его каждый раз, когда найдена запись. Однако мой метод получения данных, связанных с элементом, отличается от метода получения всех данных элемента. Способ, которым я делаю это для извлечения всех данных элемента (self.all
), является более эффективным, но, к сожалению, неприменимым, для извлечения только одного данных элемента (self.find
). Это было бы хорошо, если бы я мог сделать так, чтобы обратный вызов не применялся к self.all
вызовам.