Создание представлений БД в Ruby on Rails - PullRequest
2 голосов
/ 15 марта 2010

Я добавляю функции отчетности в проект.

3 роли здесь:

1) Волонтеры (они сообщают, в какие часы они добровольно вызвались)

2) Супервайзеры (они смотрят на отчетные материалы, обратите внимание: один супервизор может просматривать все проекты)

3) Проекты (представляет рабочий проект, над которым работает некоторая группа добровольцев)

Чтобы объяснить, что он делает:

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

Это могут быть правдоподобные сообщения:

1) Общее количество добровольцев и общее количество часов работы волонтеров в этом проекте

2) Все имена добровольцев и электронные письма, связанные с проектом

3) Количество активных проектов против общего количества проектов

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

Действительно ли представление является ответом или лучше просто сохранить запрос?

Может ли Rails сделать это или есть еще лучший или более простой способ достижения этой функциональности?

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

Я просто подумал, что наличие таблицы, хранящей представления, будет более дескриптивным (ReportID, ViewName), чем таблица, хранящая запрос SQL (ReportID, SQLQuery). Также я думал о экономии места, очень специализированные SQL-запросы становятся очень большими и запутанными. Я прошу прощения за то, что запутался, так как я действительно новичок в Ruby и Rails

Например: Я подумал, что может послужить основой для отчета № 2 будет этот запрос (или эквивалентный код для просмотра: выберите v.volunteerName, v.volunteerEmail из добровольцев v, добровольцев vg где v.volunteerId = vg.volunteerId AND vg.projectId = (некоторые аргументы переданы пользователем)

Обратите внимание, что база данных добровольцев - это база данных отношений, так как волонтер может участвовать более чем в одном проекте.

Ура, Иеремия Тантонгко

1 Ответ

0 голосов
/ 15 марта 2010

Ваш вопрос немного сбивает с толку, но я думаю, что вам нужно:

  1. Создание моделей для пользователей, проектов и действий (часы)
  2. Создать базовую форму ввода времени для добровольцев
  3. Создать новый контроллер для отчетов (назовите его «reports_controller»)
  4. Создание представлений (и действий) для каждого отчета, который у вас будет (пример: 'projects.html.erb')
  5. Создание действия индекса в отчете и предоставление ссылок для каждого отчета
  6. Добавить аутентификацию (попробуйте использовать Authlogic )
  7. Добавить авторизацию (попробуйте использовать CanCan )

Кевин

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