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 :

Affichage des erreurs du modèle


Sujet :

Ruby on Rails

  1. #1
    Nouveau membre du Club
    Profil pro
    Developpeur
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Points : 25
    Points
    25
    Par défaut Affichage des erreurs du modèle
    Dans le cadre de mon apprentissage de rails, je fait un petit site en local, et là je bloque sur qqchose que je ne comprend pas.

    C'est un petit forum, et j'ai un formulaire pour créer une nouvelle discussion.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <h2>Nouvelle discussion</h2>
     
    <p style="color: green"><%= flash[:notice] %></p>
     
    <% form_tag :action => 'create' do %>
      <%= render :partial => 'new' %>
      <%= submit_tag "Envoyer" %>
    <% end %>
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <%= error_messages_for 'discussion'  %>
    <%= error_messages_for 'message'  %>
     
     
     
    <p><label for="discussion_title">Titre du sujet</label><br/>
    <%= text_field 'discussion', 'title'  %></p>
     
    <p><label for="message_contenu">Contenu</label><br/>
    <%= text_field 'message', 'contenu'  %></p>
    Donc je crée une nouvelle discussion et un nouveau message. et je demande d'afficher les erreurs avec <%= error_messages_for 'discussion' %> et <%= error_messages_for 'message' %>.
    Sauf que les erreurs ne s'affiche que pour le modèle message, si il y a une erreur avec la discussion. celle-ci n'est pas sauver dans la base de donnée mais les erreurs ne veulent pas s'afficher.

    voilà mes deux modèles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class Message < ActiveRecord::Base
      validates_presence_of('contenu', :message => "Votre message est vide")
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class Discussion < ActiveRecord::Base
      validates_presence_of('title', :message => "Votre titre est vide")
     
      validates_presence_of('creator', :message => "message")
    end
    et la méthode new du controleur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    def new
     
      end
     
      def create 
        if request.get?
     
        else
          @discuss = Discussion.new(params[:discussion])
          @discuss.state = 1
          @discuss.creator = session[:user_pseudo]
          if @discuss.save
     
            @message = Message.new(params[:message])
            @message.author = session[:user_pseudo]
            @message.id_discussion = @discuss.id
            if @message.save
              flash[:notice] = "Message correctement envoyé"
              redirect_to :action => 'index'
            else
              @discuss.destroy
              flash[:notice] = "Faut un contenu à votre message"
              render :action => 'new'
            end
          else
            flash[:notice] = "Faut un titre à votre message"
            render :action => 'new'
          end
        end
      end

    donc si vous pouviez m'éclairé. Pourquoi les messages du modèle discussion ne s'affichent pas alors qu'ils sont bien détectés, puisque que mes notice s'affiche?

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    Salut,

    Je pense que tu devrais plutôt faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <%= error_messages_for 'discuss'  %>
    <%= error_messages_for 'message'  %>
    Ou bien renommer ta variable @discuss en @discussion (ce qui est plus cohérent amha).
    Toute la documentation Ruby on Rails : gotapi.com/rubyrails
    Mes articles :
    > HAML : langage de template pour Ruby on Rails

  3. #3
    Nouveau membre du Club
    Profil pro
    Developpeur
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Points : 25
    Points
    25
    Par défaut
    merci, je n'avais pas compris que l'argument de la fonction était le nom de la variable qu'on sauve.

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

Discussions similaires

  1. [EasyPHP] Désactiver l'affichage des erreurs sous EasyPHP
    Par shub dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 02/12/2007, 08h00
  2. [SQL-Server] Affichage des erreurs mssql en php
    Par Laure13 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/05/2006, 12h05
  3. [EasyPHP] [Serveur] [EasyPHP/Wamp5]Non affichage des erreurs
    Par leodi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 27/03/2006, 20h29
  4. [Struts Validator] probleme affichage des erreurs
    Par Morpheus2144 dans le forum Struts 1
    Réponses: 7
    Dernier message: 24/01/2006, 15h25
  5. [Eclipse 3.0]Affichage des erreurs
    Par alfsalim dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/07/2004, 17h33

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