Forum: Rails France formulaires et affichage d'erreurs avec rails3.0

Posted by Solrac Caritas (caritas)
on 2010-09-01 15:13
bonjour
Tout nouveau sur rails( et sur rails 3.0), j'ai un petit problème avec
les formulaires et l'affichage des erreurs.

d’après la doc sur
http://edgeguides.rubyonrails.org/getting_started.html pour créer un
commentaire associé à un post:

<h2>Add a comment:</h2>
  <%= form_for([@post, @post.comments.build]) do |f| %>
  <%= f.error_messages %>
  ...
  <div class="actions"><%= f.submit %></div>
<% end %>

questions:

1):
est ce la bonne solution, car je n'ai pas trouvé sur les sites d'aide
que j'ai regardé, cette manière de procéder:
<%= form_for([@post, @post.comments.build]) do |f| %>
mais plutôt:
<%= form_for([@post, Comment.create]) do |f| %>
ou encore une autre manière définie ici:
http://railstutorial.org/chapters/user-microposts#top

2):
 <%= f.error_messages %> est "deprecated" mais on peut l'installer en
tant que pluging. Est ce la solution pour une nouvelle application, ou
juste une solution afin d'assurer une certaine compatibilité avec la
version précédente?( dans ce cas cela ne m’intéresse pas).
Où trouver de la documentation la dessus?

3):
quelle est donc la solution pour afficher les erreurs?
pour la création de post je comprend le principe mais je n'ai pas
réussit à l'appliquer pour les commentaires...
  <% if @post.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@post.errors.size , "error") %> prohibited this
postfrom being saved:</h2>

      <ul>
      <% @post.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>


merci d'avance
Posted by Fernando Perez (fernando)
on 2010-09-04 14:19
> <%= form_for([@post, Comment.create]) do |f| %>

C'est débile ça. Ça te pré-crée un objet, donc si tu ne vas pas au bout 
du formulaire un objet sera en db alors qu'il ne correspond à rien.

> quelle est donc la solution pour afficher les erreurs?

Je n'ai pas encore basculé sur Rails 3, donc je ne suis pas sûr, mais 
essaye tout de même:

<%= error_messages_for :post %>



--

http://digiprof.tv
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.