Ruby on rails 在输入中显示错误,而不是显示通知错误

Ruby on rails 在输入中显示错误,而不是显示通知错误,ruby-on-rails,twitter-bootstrap,ruby-on-rails-4,Ruby On Rails,Twitter Bootstrap,Ruby On Rails 4,我有一个带有Twitter引导的rails应用程序,当验证一个对象(如名称,名称为空)时,我会得到一个错误,但在一个闪光/通知中,如下图所示: 好的,但是,与此相反,我希望在输入中显示错误,并且输入的类应该是.has error(或者类似的东西)。我查看了字段\u error\u proc并试图更改它,但未成功 我们以前已经这样做过(您可以在中看到-单击“注册”) -- 错误 我们的做法是: #app/views/users/new.html.erb 您需要考虑的是,Rails会自动将类追加到

我有一个带有Twitter引导的rails应用程序,当验证一个对象(如名称,名称为空)时,我会得到一个错误,但在一个闪光/通知中,如下图所示:

好的,但是,与此相反,我希望在输入中显示错误,并且输入的类应该是.has error(或者类似的东西)。我查看了字段\u error\u proc并试图更改它,但未成功

我们以前已经这样做过(您可以在中看到-单击“注册”)

--

错误

我们的做法是:

#app/views/users/new.html.erb

<>您需要考虑的是,Rails会自动将类追加到带有错误的任何输入中。如果您想为充满错误的输入设置样式,您可以使用随附答案中的样式建议

我在我的项目中将字段\u error\u proc设置为blow,它可以正常工作

config.action_view.field_error_proc = Proc.new do |html_tag, instance|
  case instance
  when ::ActionView::Helpers::Tags::Label
    html_tag
  else
    error_message = instance.error_message.is_a?(Array) ?
      instance.error_message.join(', ') :
      instance.error_message

    %Q(<div class="has-error">#{html_tag}<div class='help-block'>#{error_message}</div></div>).html_safe
  end
end
config.action\u view.field\u error\u proc=proc.new do | html\u标记,实例|
案例
when::ActionView::Helpers::Tags::Label
html_标签
其他的
error\u message=instance.error\u message.\u是?(数组)吗?
instance.error_message.join(','):
instance.error\u消息
%Q(#{html_tag}{error_message}).html_-safe
结束
结束

您可以在视图/layout/application.html.erb中的
之后添加
。它将显示表单传递给controllerIm的参数的详细信息,以强制显示此错误。我真正想要的是在输入中显示错误,而不是在通知/弹出窗口中。Ok。这对我来说是可行的,但是,在我的例子中,
field\u with\u erros
类不会随错误追加到输入中。我不知道这是否是宝石的特殊性或什么。我知道我可以使用jQuery实现这一点。。但是你知道,这就像一行js连接到每个控件/视图。
config.action_view.field_error_proc = Proc.new do |html_tag, instance|
  case instance
  when ::ActionView::Helpers::Tags::Label
    html_tag
  else
    error_message = instance.error_message.is_a?(Array) ?
      instance.error_message.join(', ') :
      instance.error_message

    %Q(<div class="has-error">#{html_tag}<div class='help-block'>#{error_message}</div></div>).html_safe
  end
end