ruby-on-rails – 每个字段下方的Rails显示表单错误

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 每个字段下方的Rails显示表单错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下表格
  1. <%= form_for(@user) do |f| %>
  2. <% if @user.errors.any? %>
  3. <div id="error_explanation">
  4. <h2><%= pluralize(@user.errors.count,"error") %> prohibited this user from being saved:</h2>
  5.  
  6. <ul>
  7. <% @user.errors.full_messages.each do |message| %>
  8. <li><%= message %></li>
  9. <% end %>
  10. </ul>
  11. </div>
  12. <% end %>
  13.  
  14. <%= @user.errors.messages[:name] %>
  15.  
  16. <div class="field">
  17. <%= f.label :name %><br>
  18. <%= f.text_field :name %>
  19. </div>
  20. <div class="field">
  21. <%= f.label :email %><br>
  22. <%= f.text_field :email %>
  23. </div>
  24. <div class="field">
  25. <%= f.label :password %><br>
  26. <%= f.password_field :password %>
  27. </div>
  28. <div class="field">
  29. <%= f.label :phone %><br>
  30. <%= f.text_field :phone %>
  31. </div>
  32. <div class="actions">
  33. <%= f.submit %>
  34. </div>
  35. <% end %>

我想为它下面的每个字段显示表单错误,而不是顶部的所有字段.经过rails guide,但无法知道如何做到这一点.

解决方法

您可以编写帮助程序以返回任何对象的任何字段的错误消息

在/app/helpers/application_helper.rb中:

  1. def show_errors(object,field_name)
  2. if object.errors.any?
  3. if !object.errors.messages[field_name].blank?
  4. object.errors.messages[field_name].join(",")
  5. end
  6. end
  7. end

在视图文件中:

  1. <div class="field">
  2. <%= f.label :name %><br>
  3. <%= f.text_field :name %>
  4. <p class='error'><%= show_errors(@user,:name) %></p>
  5. </div>

猜你在找的Ruby相关文章