如何在字段旁边显示错误消息

我有一个带有输入字段/标签等的表单。如何在字段旁边显示错误消息? 而不是在顶部聚集在一起?

我正在使用装备,导轨3

我把它放在表格的顶部:

= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| - if resource.errors.any? #errorExplanation %h2 = pluralize(resource.errors.count, "error") prevented this user from being saved: %ul - resource.errors.full_messages.each do |msg| %li = msg 

你可以用它

 - if @resource.errors[:field_name] ... 

也有用的链接:

http://guides.rubyonrails.org/active_record_validations.html#working-with-validation-errors

只需在初始化文件夹中创建一个文件即可。

配置/初始化/ inline_errors.rb

将此代码放入其中:

 ActionView::Base.field_error_proc = Proc.new do |html_tag, instance| unless html_tag =~ /^
}.html_safe else %{#{html_tag}}.html_safe end end

PD:对不起我的英文。

这个怎么样

如果你想把错误信息放在文本字段下面,你可以这样做

 .row.spacer20top .col-sm-6.form-group = f.label :first_name, "*Your First Name:" = f.text_field :first_name, :required => true, class: "form-control" = f.error_message_for(:first_name) 

什么是error_message_for
– >嗯,这是一个很好的黑客做一些很酷的东西

 # Author Shiva Bhusal # Aug 2016 # in config/initializers/modify_rails_form_builder.rb # This will add a new method in the `f` object available in Rails forms class ActionView::Helpers::FormBuilder def error_message_for(field_name) if self.object.errors[field_name].present? model_name = self.object.class.name.downcase id_of_element = "error_#{model_name}_#{field_name}" target_elem_id = "#{model_name}_#{field_name}" class_name = 'signup-error alert alert-danger' error_declaration_class = 'has-signup-error' "
"\ "#{self.object.errors[field_name].join(', ')}"\ "
"\ ""\ "".html_safe end rescue nil end end

结果 在此处输入图像描述

标记错误后生成

   

相应的SCSS

  .has-signup-error{ .signup-error{ background: transparent; color: $brand-danger; border: none; } input, select{ background-color: $bg-danger; border-color: $brand-danger; color: $gray-base; font-weight: 500; } &.checkbox{ label{ &:before{ background-color: $bg-danger; border-color: $brand-danger; } } } 

注意:此处使用的引导变量,不要忘记在配置目录中对文件进行任何修改后立即重新启动服务器。

您可以使用error_message_on http://apidock.com/rails/ActionView/Helpers/ActiveRecordHelper/error_message_on

更新:

form.error_messages已从Rails中删除,现在可以作为插件使用。 请使用rails plugin install git://github.com/rails/dynamic_form.git