ruby-on-rails - 如何突出显示 Rails 验证错误的字段

标签 ruby-on-rails ruby validation validationerror

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

谢谢。

最佳答案

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

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

这是你想要的吗?

额外:here's a section about customizing default ActiveRecord validations CSS.

编辑: (关于额外的假设)

# 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) %>
[...]

(我可能在那里犯了一个错误 - 我是在手机上写的 - 但你明白了一般的想法。你可以用多种方式对此进行编码 = 无穷大,所以按照你喜欢的方式去做。 ..)

关于ruby-on-rails - 如何突出显示 Rails 验证错误的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32062100/

相关文章:

ruby-on-rails - 带有 redirect_to 的 Flash 通知在 rails 中被破坏

ruby - 如何在 buildr 项目中使用 Ruby 代码?

javascript - 使用异常的表单字段 ID 验证 Javascript 中的日期 - Salesforce.com Web-To-Case Integration

c# - 上下文领域驱动模型验证

c# - 在 telerik winforms 下显示 cellvalidation 错误消息

java - 索引操作 Java Spring Controller

.net - 用于将 Rails 应用程序从开发到生产的典型工具是什么?

ruby-on-rails - Docker on Apple Silicon (M1) 中的 Ruby on Rails

ruby-on-rails - 通过它的值获取属性的名称

ruby 1.9.2 + FreeBSD