2010-03-15 3 views
2

J'ajoute des fonctionnalités de création de rapports à un projet.Création de vues de base de données dans Ruby on Rails

3 rôles ici:

1) Les bénévoles (ils signalent quelles heures ils se sont portés volontaires)

2) Les superviseurs (ils regardent les choses rapporté, ndlr: un superviseur peut voir tous les projets)

3) Projets (Représente un projet de travail que certains collection de bénévoles travaillent sur)

Pour expliquer ce qu'il fait:

Un rapport sera spécifié par le superviseur pour générer en fonction d'une requête de ce dont il a besoin.

Ceux-ci pourraient être des rapports plausibles:

1) Le nombre total de bénévoles, et le montant total des heures de bénévolat sur ce projet

2) Tous les noms du volontaire et de courriels associés à un projet

3) Le nombre de projets actifs par rapport au nombre total de projets

Je pensais peut-être que créer une vue de base de données dans Rails et stocker le nom de cette vue Rails va juste vérifier la vue quand Un superviseur veut retirer le rapport.

Une vue est-elle vraiment la réponse ou vaut-il mieux enregistrer une requête?

Can Rails peut-il faire cela ou existe-t-il un moyen encore meilleur ou plus simple de réaliser cette fonctionnalité? Edit: Un rapport est essentiellement une requête SQL à l'arrière. Nous voulons que les superviseurs puissent également créer leurs propres rapports. Nous avons l'intention de construire une interface utilisateur frontale pour le rendre plus facile. Je pensais juste qu'avoir une table stockant les vues serait plus un descript (ReportID, ViewName) qu'une table stockant la requête SQL (ReportID, SQLQuery). En outre, je pensais à économiser de l'espace des requêtes SQL très spécialisées deviennent très grandes et confuses. Je suis désolé d'être source de confusion depuis que je suis vraiment nouveau à Ruby et Rails

Par exemple: Je pensais ce qui pourrait être mise sous tension du rapport n ° 2 serait cette requête (ou un code équivalent pour une vue: sélectionner v.volunteerName, v.volunteerEmail de volontaires v, volontariat vg où v.volunteerId = vg.volunteerId ET vg.projectId = (Certains arguments transmis par l'utilisateur)

Notez que la base de données de volontariat est une base de données relationnelle car un volontaire peut être bénévole pour plus de un projet.

Cheers, -Jeremiah Tantongco

Répondre

0

Votre question est un peu déroutant confus, mais je pense que vous devez:

  1. Créer des modèles pour les utilisateurs, projets et activités (heures)
  2. Créer un formulaire de saisie du temps de base pour les volontaires
  3. Créer un nouveau contrôleur pour les rapports (appelez-le 'reports_controller')
  4. Créer des vues (et des actions) pour chaque rapport, vous aurez (exemple: « projects.html.erb »)
  5. Créer une action d'index dans le rapport et fournir des liens pour chaque rapport
  6. Ajouter une authentification (essayez d'utiliser Authlogic)
  7. Ajouter une autorisation (essayez d'utiliser CanCan)

Kevin

+0

que pensez-vous des besoins de clarification? – Zigu

+0

"Un rapport sera spécifié par le superviseur pour générer en fonction d'une requête de ce dont il a besoin." (Cela signifie-t-il dans une forme de SQL ou simplement en sélectionnant un rapport), "Je pensais peut-être créer une vue de base de données dans Rails et stocker le nom de cette vue afin que Rails vérifie juste la vue ..." signifie?), "Une vue est-elle vraiment la réponse ou est-il préférable de simplement enregistrer une requête?" (qu'est-ce que l'enregistrement d'une requête implique?) –

+0

J'ai ajouté un peu plus qui, je l'espère, aidera. Un jour, je vais maîtriser l'art de poser des questions correctement ... – Zigu

Questions connexes