如何突出显示 Rails 验证错误上的字段 [英] How to Highlight Fields on Rails Validation Errors

查看:47
本文介绍了如何突出显示 Rails 验证错误上的字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在 Rails 3.1 中为验证失败的字段显示表单字段突出显示?我知道脚手架会自动生成 css 和控制器代码来处理这个问题,但我想知道是否有办法手动生成它.我已经通过以下方式实现了错误消息的字符串显示:@user.errors.full_messages.each...等,但我无法让这些字段以红色突出显示.有什么想法吗?

How do you display form field highlighting for fields that fail validation errors in Rails 3.1? I know that scaffolding automatically generates the css and controller code to handle this, but I was wondering if there was a way to generate that manually. I have already implemented the string display of error messages through: @user.errors.full_messages.each...etc, but I can't get the fields to become highlighted in red. Any ideas?

谢谢.

推荐答案

假设您的 CSS 文件中的字段有一个 error 类:

Assuming you have an error class for fields in your CSS file:

<% if @user.errors[:name] %>
  <%= f.label :name, :class => "error" %>
<% else %>
  <%= f.label :name %>
<% end %>

这是你想要的吗?

额外:这里是关于自定义默认 ActiveRecord 验证 CSS 的部分.

(关于额外的 ifs)

# app/helpers/application_helper.rb

def field_class(resource, field_name)
  if resource.errors[field_name]
    return "error".html_safe
  else
    return "".html_safe
  end
end

然后:

# in your view

<%= f.label :name, :class => field_class(@user, :name) %>
<%= f.label :password, :class => field_class(@user, :password) %>
[...]

(我可能在那里犯了一个错误 - 我是在电话上写的 - 但你明白了一般的想法.你可以用多种方式编码这个 = 无穷大,所以按照你喜欢的方式来编写...)

这篇关于如何突出显示 Rails 验证错误上的字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆