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 :

utilisateur logé et creation d'enregistrement


Sujet :

Ruby on Rails

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Points : 67
    Points
    67
    Par défaut utilisateur logé et creation d'enregistrement
    Bonsoir

    j'utilise le plugin Acts_as_authenticated pour gerer les utilisateurs de mon site;

    Pour créer une randonnée, un utilisateur doit d'abord se loger; Ca ca marche;

    Le code de creation de la randonnée est issu a 100% du "generate scaffold".

    Comment faire pour ajouter, dans la table randonnees (champ user_id), l'identifiant de l'utilisateur qui crée l'enregistrememnt???

    -pour info on touve dans le model user:
    has_many :randonnees
    -et dans le model randonnee:
    belongs_to :user

    d'avance merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Points : 84
    Points
    84
    Par défaut
    je ne sais pas encore comment fonctionne le plugin act_as_authenticated mais j'imagine qu'il te donne acces à la variable donnant user_id.

    Ensuite il te reste à rentrer user_id dans params[:randonnees] dans la méthode create et edit de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    params[:randonnees][:user_id] = user_id
    Je suis débutant ce n'est peu être pas la meilleure solution mais j'espère que cela pourra t'aider.

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    current_user.id

  4. #4
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Points
    2 695
    Par défaut
    Citation Envoyé par debutant_linux
    Bonsoir

    j'utilise le plugin Acts_as_authenticated pour gerer les utilisateurs de mon site;

    Pour créer une randonnée, un utilisateur doit d'abord se loger; Ca ca marche;

    Le code de creation de la randonnée est issu a 100% du "generate scaffold".

    Comment faire pour ajouter, dans la table randonnees (champ user_id), l'identifiant de l'utilisateur qui crée l'enregistrememnt???

    -pour info on touve dans le model user:
    has_many :randonnees
    -et dans le model randonnee:
    belongs_to :user

    d'avance merci
    Regarde ici
    http://technoweenie.stikipad.com/plu...Authentication
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    current_user – Returns an instance of the currently logged in user.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Points : 67
    Points
    67
    Par défaut
    j'insere la ligne suivante en bas, ca marche, merci de me dire ce que vous en pensez;

    current_user retourne un résultat(1 quelque soit l'utilisateur) different de session[:user] et different de celui que j'attend???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def create    
    @randonnee = Randonnee.new(params[:randonnee])
        @randonnee.user_id=session[:user]
        if @randonnee.save
          flash[:notice] = 'Randonnee was successfully created.'
          redirect_to :action => 'list'
        else
          render :action => 'new'
        end
     end

  6. #6
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Points
    2 695
    Par défaut
    current_user est l'objet en entier alors que sessions n'est que l'id

    C'est que j'utilise et ca marche tres bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def create    
    @randonnee = Randonnee.new(params[:randonnee])
        @randonnee.user_id= current_user.id
        if @randonnee.save
          flash[:notice] = 'Randonnee was successfully created.'
          redirect_to :action => 'list'
        else
          render :action => 'new'
        end
     end

  7. #7
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    Autre possibilité, une boite invisible dans la vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%= text_field 'randonnee', 'user_id', :value => current_user.id, :style => "display:none" %>
    Ca peut etre pratique quand on implémente du javascript dans les formulaires...

  8. #8
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    quitte à mettre un champs invisible, autant utiliser un hidden_field

    pis bon, comme l'objet current_user est accessible de partout, ça sert à rien de se casser trop
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  9. #9
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    quitte à mettre un champs invisible, autant utiliser un hidden_field
    Ah oui carrément !
    En fait, je suis en train de reprendre un code que j'avais fait il y a quelques temps, et comme ça répond au sujet, j'ai posté comment j'avais fait à l'époque
    Il faut comprendre qu'il y a eu des tas de modifs avant d'arriver à ça, au début le champ était visible, puis il est devenu invisible, etc...
    Je vais déplacer le current_user.id dans le controller, ça me semble + propre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. creation accidentelle enregistrements vierges
    Par STANDBOY dans le forum IHM
    Réponses: 1
    Dernier message: 16/01/2010, 08h04
  2. [AC-2000] creation d'enregistrement automatique
    Par cjay974 dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/11/2009, 17h00
  3. [XL-2003] formulaire de creation et enregistrement une feuil
    Par amine2613 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/04/2009, 14h28
  4. [97 -> 2007]Creation d'enregistrement erreur 3021
    Par mcfly0570 dans le forum Access
    Réponses: 6
    Dernier message: 06/02/2008, 00h10
  5. Creation d'enregistrement null
    Par el_quincho dans le forum Access
    Réponses: 1
    Dernier message: 28/06/2006, 11h37

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