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 :

Passage de paramètres avec Redirect


Sujet :

Ruby on Rails

  1. #1
    Membre régulier Avatar de abir84
    Inscrit en
    Mars 2007
    Messages
    214
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2007
    Messages : 214
    Points : 116
    Points
    116
    Par défaut Passage de paramètres avec Redirect
    Bonjour,

    J'ai une application ou j'ai tjrs besoin de faire passer des paramètres d'une page à une autre et d'un controller à un autre. Mais je ne sais pas comment se fait le passage de parmètres dans un même controlleur ou entres deux controlleurs.
    Par exemple j'ai une page de login login.rhtml, elle passe les param login et pass a login dans user_controller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <%= start_form_tag :action=> "login" %>
     
    <div title="Account login" id="loginform" class="form">
        ...
        <label for="user_login">Login:</label><br/>
        <input type="text" name="login" id="login" size="30" value=""/><br/>
        ...
        <br/>
        <input type="submit" name="login" value="Login »" class="primary" /> 
       `...
    <%= end_form_tag %>
    ici le passage est bon dans user_controller/login je récupère ces paramètres par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @login= @params['login']
    Maintenant, je veux faire passer ces meme paramètres ou l'utilisateur courant à la page d'accueil pour pouvoir afficher un message personnalisé, je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    redirect_back_or_default :action => "welcome"
    mais dans welcome ces valeurs sont nulles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def welcome
        @user= User.find_by_login(@params['login'])
       ...
      end
    ==> You have a nil object when you didn't expect it!
    The error occurred while evaluating nil.firstname

    je mets quoi alors??

    De meme comment je peux faire passer ces paramètres par exemples de user_controller à membre_controller

    Désolée c'est un peu long
    Merci

  2. #2
    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
    redirect_back_or_default, c'est quoi cette bête ?

    Sinon, quand tu fait un redirect_to depuis une action, tu as deux solutions :

    - les flashs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    action 1 :
    flash['ma_variable'] = ma_valeur
    redirect_to :action=>'action2'
    
    action 2 :
    ma_valeur = flash['ma_variable']
    ça fonctionne exactement de la même manière que les sessions, sauf que ça ne vit que le temps du passage d'une action à une autre. Idéal donc pour le passage de paramètres (en plus, ça n'apparait pas dans l'URL du coup)

    ou le passer dans le redirect_to :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    action 1 :
    redirect_to :action=>'action2', :ma_variable=>ma_valeur
    
    action 2 :
    ma_valeur = params['ma_valeur']
    Là, ça apparaitra dans l'URL.

    En espérant que ça t'aide

    PB
    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

  3. #3
    Membre régulier Avatar de abir84
    Inscrit en
    Mars 2007
    Messages
    214
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2007
    Messages : 214
    Points : 116
    Points
    116
    Par défaut
    Merci beaucoup pour ta réponse, j'ai essayé avec le flash et ça marche.
    Citation Envoyé par titoumimi Voir le message
    redirect_back_or_default, c'est quoi cette bête ?
    en fait je suis débutante donc j'ai pris un exemple de code et j'ai travaillé la dessus pour pouvoir apprendre. Je crois que c'est LoginGenerator qui fait ça

    Citation Envoyé par titoumimi Voir le message
    ça fonctionne exactement de la même manière que les sessions, sauf que ça ne vit que le temps du passage d'une action à une autre. Idéal donc pour le passage de paramètres (en plus, ça n'apparait pas dans l'URL du coup)
    Je dois voir comment fonctionnent les sessions avant

    Une autre petite question SVP, j'ai une confusion entre les notations de variables avec :variable ou @variable ou bien variable tout court. Une petite clarification??

    Merci

  4. #4
    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
    alors :

    variable, c'est une variable 'classique', elle n'a qu'une portée très limitée, par exemple si tu la déclares dans une action, elle ne sera pas accessible dans ta vue

    @variable, c'est une variable d'instance, elle a une portée supérieure. Une telle variable déclarée dans une action est également disponible dans une vue

    :variable, ce n'est pas une variable mais un symbole. Dans un hash, tu t'en sert pour indiquer une clé, mais tu pourrai tout aussi bien te servir d'une chaîne

    J'espère que c'est plus clair pour toi.
    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

  5. #5
    Membre régulier Avatar de abir84
    Inscrit en
    Mars 2007
    Messages
    214
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2007
    Messages : 214
    Points : 116
    Points
    116
    Par défaut
    Merci Beaucouup

    Il faut dire que RoR manque un peu de documentation, mais avec de l'aide elle est vraiment très sympaa

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

Discussions similaires

  1. Passage de paramètres avec espaces
    Par rems033 dans le forum Langage
    Réponses: 2
    Dernier message: 13/03/2008, 15h19
  2. [PHP-JS] Passage de paramètre avec window.open
    Par AngieP dans le forum Langage
    Réponses: 1
    Dernier message: 18/01/2008, 09h57
  3. [wsadmin] Passage de paramètre avec jacl ?
    Par Bourbaky dans le forum Websphere
    Réponses: 4
    Dernier message: 30/11/2007, 14h24
  4. Passage de paramètres avec DLL Delphi
    Par GroovyBaby dans le forum C#
    Réponses: 2
    Dernier message: 08/03/2007, 14h51
  5. Passage de paramètre avec POST
    Par boulette85 dans le forum Langage
    Réponses: 4
    Dernier message: 28/02/2007, 20h59

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