f.error_messages dans les Rails 3.0

Rails 3.0 obsolète f.error_messages et maintenant, nécessite un plugin pour fonctionner correctement - je toutefois vous voulez apprendre comment afficher les messages d'erreur de la (nouvelle) natif moyen. Je suis à la suite de la guide de mise en route, qui utilise la méthode dépréciée lors de la mise en œuvre du formulaire de commentaires. Par exemple:

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

Ici est la bonne façon de le faire (comme généré par l'échafaudage):

<%= form_for(@post) do |f| %>
  <% if @post.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@post.errors.count, "error") %> prohibited this post from being saved:</h2>

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

Je comprends que j'utilise le @post variable dans le dernier exemple, mais ce que variable dois-je faire référence à l'ancienne pour obtenir les messages d'erreur pour le commentaire de la création?

  • Votre question est en contradiction avec. Ici vous demandez comment obtenez des messages d'erreur pour les commentaires "à l'ancienne", par exemple, qui indique que vous vous posez à propos de l'affaire avec f.error_messages. (Ou avez-vous voulu dire "dans la forme", pas "à l'ancienne"?) Cependant, dans les commentaires, vous vous demandez comment obtenez des messages d'erreur "sans l'aide de f.error_messages". Alors, qui est-il?