Formulaires et affichage d'erreurs avec rails3.0


#1

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:

Add a comment:

<%= form_for([@post, @post.comments.build]) do |f| %> <%= f.error_messages %> ...
<%= f.submit %>
<% 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? %>


<%= pluralize(@post.errors.size , “error”) %> prohibited this
postfrom being saved:

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

<% end %>

merci d’avance


#2

<%= 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