IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

utilisation de devise et modification de la configuration "à la volée"


Sujet :

Ruby on Rails

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut utilisation de devise et modification de la configuration "à la volée"
    Bonjours,

    Dans le cadre d'un stage, je doit faire la maquette d'un site intégré.

    Pour le moment j’avance bien mais je me retrouve face à deux problème :

    - J'utilise devise pour gérer les connexions des utilisateurs. Comment je peut savoir le nombre d'utilisateur connecté à un instant t ? Le but est de modifier certaine page en fonction du nombre de personne connecté et donc de récupérer cette information dans un contrôleur.

    - Je doit pouvoir modifier les paramètres de configuration automatiquement c-à-d sans avoir à relancer le serveur. Je me doute bien que pour certain comme le port IP c'est mort, mais ce doit être possible pour le serveur SMTP non ?

    Merci d'avance pour votre temps,

    Cordialement,

    Draque

  2. #2
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    Citation Envoyé par draque Voir le message
    Bonjours,

    Comment je peut savoir le nombre d'utilisateur connecté à un instant t ?
    Le but est de modifier certaine page en fonction du nombre de personne connecté et donc de récupérer cette information dans un contrôleur.
    Tu peux utiliser les méthodes disponibles dans User model:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    connected_users = User.count(:conditions => "timedout?(#{3.minutes.ago})"
    Je n'ai pas testé, il faut ajuster le temps sans activité (voir Devise API). Il faut aussi déclarer 'timeoutable' dans le modèle User.
    - Je doit pouvoir modifier les paramètres de configuration automatiquement c-à-d sans avoir à relancer le serveur. Je me doute bien que pour certain comme le port IP c'est mort, mais ce doit être possible pour le serveur SMTP non ?
    Ca veut dire quoi, modifier automatiquement ? Quel rapport avec SMTP et port IP???

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    merci de ta réponse,

    je vient de l’essayer mais il me sort une erreur sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLite3::SQLException: near "?": syntax error: SELECT COUNT(*) FROM "utilisateurs"  WHERE (timedout?(2013-05-17 08:28:06 UTC)
    j'ai donc tenté le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Utilisateur.all.each do |u|
    	connected_users += 1 if u.timedout?(timeout_in.ago)
    end
    Mais il considère tout les utilisateurs existant comme connecté.

    Concernant les configurations,

    Mon site gère les paramètres suivant :

    - la base de donnée
    - le serveur smtp
    - le port ip du site

    Pour chacun de ces paramètre, on peut les voir et les modifier en ligne (les fichiers de conf sont modifié). Le problème c'est qu'il faut actuellement relancer manuellement le serveur.
    J'aimerais pouvoir appliquer directement les modifications. En théorie, cela ne devrais pas poser de problème pour le serveur smtp et devrais aussi être possible pour la base de donnée mais je n'ai pas réussis à trouver comment faire.

  4. #4
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    Comme je disais, c'est pas testé, donc essai d'exécuter la même requête que celle qui état générée par Rails dans ton DB client ou juste dans Rails console.
    Le code posté est incorrect:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Utilisateur.all.each do |u|
    	connected_users += 1 if u.timedout?(timeout_in.ago)
    end
    La variable connected_users n'est visible que dans le scope de ta boucle. En plus elle n'est pas initialisée au départ.
    1. Si tu n'as pas redéfinis ton modèle explicitement, devise utilise User.
    2. Pas la peine de récupérer tous les utilisateurs et de boucler la-dessus, il vaut mieux préciser tes paramètres directement dans la requête ou au moins utiliser méthode 'sélect' dispo sur Array. Je ne pense pas que tu puisses avoir tous les utilisateurs sans rajouter qch de spécifique dans ton modèle (an attributs qui permettrait de tracer ceux qui sont connectés), mais bon dans ce cas il faudra, peut être forcer l'annulation de session de l'utilisateur dès qu'il quitte le browser, ouvre une autre session dans un autre browser, etc. A réfléchir donc à tous les cas de figures possibles.
    Attention, l'attribut de Devise porte le nom 'timedout', en plus il faut déclarer/activer ce module dans le modèle User.

    Pour la configuration, chaque fois que tu modifie les params de la DB dans ton database.yml, rajoutes une migration, etc, tu devras redémarrer le serveur. Je ne sais pas ce que tu veux dire par SMTP, port IP.... Sur quel serveur est déployé ton application RoR? En général ça ne se fait pas, pourquoi vouloir modifier, à la volée en plus, ces paramètres ? Ne comprends pas.

Discussions similaires

  1. Utilisation des dates et modification
    Par joebar0212 dans le forum 4D
    Réponses: 14
    Dernier message: 25/04/2012, 23h31
  2. modification du fichier configure
    Par dede92 dans le forum Unix
    Réponses: 0
    Dernier message: 11/06/2011, 11h52
  3. [PHP 5.2] Utilisation de PHP en ligne de commande : configurer php.ini
    Par youtch dans le forum Langage
    Réponses: 2
    Dernier message: 14/01/2011, 15h58
  4. Configurer et utiliser les Aliases du projet
    Par EJ dans le forum XMLRAD
    Réponses: 9
    Dernier message: 20/05/2004, 22h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo