Непостоянные данные в приложении Rails - PullRequest
3 голосов
/ 04 декабря 2008

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

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

Ответы [ 3 ]

7 голосов
/ 04 декабря 2008

Похоже, вы могли бы использовать Rails не активную модель записи. Об этом есть хороший Railscast:

http://railscasts.com/episodes/121-non-active-record-model

Надеюсь, это поможет,

2 голосов
/ 04 декабря 2008

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

0 голосов
/ 05 декабря 2008

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

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

Как только я получил тот же самый совет, который вы получаете сейчас все это великолепно упростило.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...