2008-12-04 2 views
3

Я работаю над страницей «аналитика» для приложения rails. На странице аналитики не сохраняются никакие данные (это очень примитивно на данный момент), но использует метрики, которые я захватываю из БД (через вырабатывающие выражения, встроенные в ActiveRecord). Помимо сбора и представления показателей, единственное другое требование, которое у меня есть, - дать пользователю возможность задать диапазон дат для фильтрации данных. До этого момента я использовал переменные экземпляра и т. П. Для хранения информации о метриках ... по мере роста числа показателей наряду с необходимостью управления датами начала и окончания фильтрации. Я начинаю думать, что я должен поместить эти данные в свои собственной модели. Если я переведу все мои «данные» в модель, я должен просто использовать простой объект с attr_accessors или есть более подходящий базовый класс, который я мог бы использовать для непостоянных данных? Я достаточно знаком с архитектурой MVC, чтобы узнать, что мой контроллер становится раздутым, но не достаточно хорошо знакомы с рельсами, чтобы определить, как я должен организовать свои данные/логику в этом случае.Непрерывные данные в приложении Rails

Любое понимание было бы принято с благодарностью!

ответ

2

Вы находитесь на правильном пути здесь. Во многих приложениях есть классы внутри приложений/моделей, которые не наследуются от ActiveRecord :: Base. Каждый раз, когда вы обнаруживаете, что управляете множеством произвольных переменных внутри действий контроллера, неплохо рассмотреть возможность абстрагирования этих данных в непостоянную модель.

0

Это область, которая в настоящее время плохо документирована, возможно, потому, что материал ActiveRecord более сексуальный?

Я прошел один и тот же процесс, обнаружив, что мои действия с контроллером становились неудобно большими и полными логики, когда я стремился построить свои производные данные из моделей на основе ActiveRecord, которые, в свою очередь, начали приобретать дополнительные обязанности, действительно нужно или нужно.

Как только я получил the same advice you're getting now, все это упростилось великолепно.

Смежные вопросы