我正在编写一个应用程序,并且正在使用devise进行注册和登录。
我现在正在验证注册表单字段,并且可以使用“ <%= devise_error_messages!%>”来检查并显示“未验证”数据。
问题是我不想在同一个div中显示所有错误,我想将错误1放在一个div中,将错误2放在另一个div中,依此类推。
例如:如果用户插入一个已经采用的用户名并将电子邮件字段保留为空,我想显示:
谢谢
答案 0 :(得分:1)
您始终可以遍历资源中的错误。
因此,如果您的外观与此相似:
<%= form_for(resource, :as => resource_name, :url => registration_path(...
您可以简单地在资源中获取错误并显示它们,如下所示:
<% resource.errors.full_messages.each do |msg| %>
<div><%= msg %></div>
<% end %>
errors.full_messages
-将为您提供一个带有可显示给用户的漂亮错误消息的数组。
答案 1 :(得分:0)
我解决了这个问题,从而创建了一个初始化器
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance| unless html_tag
=~ /^<label/
%{<div class="field_with_errors">#{html_tag}<label for="#{instance.send(:tag_id)}"
class="message">#{instance.error_message.first}</label></div>}.html_safe else
%{<div class="field_with_errors">#{html_tag}</div>}.html_safe end end
这给了我我想要的确切结果。
感谢您的帮助! :)