css - “field-with-errors” 包装器在 ruby​​ on rails 中使用 <pre> 标记更改页面外观

标签 css ruby-on-rails ruby

enter image description here

我正在使用 <div class="field_with_errors">使用 twitter bootstrap 显示验证错误。但是当出现验证错误时,这些会在控件之间产生额外的空间,导致整个 UI 被破坏,正如您从图像中看到的那样。如何避免这个额外的空间。第二件事,我想在不在下面的控件前面显示验证错误。怎么可能。当我尝试使用 Firbug 调试此 css 时,我知道有 <pre> </pre> HTML tae 和它们造成了这个额外的空间。我在图像中添加了红色以增加额外空间。

请建议我如何避免这个额外的空间并在控件的右侧(前面)获得验证错误。如果您需要粘贴更多代码,请告诉我。

最佳答案

默认情况下,Rails 会将一个 block 元素注入(inject)到您的表单中。这里是

<div class="field_with_errors">

来自。为了避免额外的空间,您需要让 Rails 注入(inject)一个内联元素,例如 span。为此,请进入 config/application.rb 包括以下内容:

module YourApp
  class Application < Rails::Application

    config.action_view.field_error_proc = Proc.new do |html_tag, instance|
      "<span class=\"field_with_errors\">#{html_tag}</span>".html_safe
    end

  end
end

此配置为 Rails 提供了一个要调用的 Proc 函数,该函数现在将生成您的表单错误元素。您可以根据自己的喜好更改此 html。您可以在这里找到更多信息: http://guides.rubyonrails.org/configuring.html#configuring-action-view

关于css - “field-with-errors” 包装器在 ruby​​ on rails 中使用 <pre> 标记更改页面外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16322873/

相关文章:

ruby-on-rails - Ruby on Rails - Ruby 运算符优先级 - 括号

css - 内部样式表被之前在 html 文档中声明的外部 css 覆盖

css - 如何删除 IE 6 中单选按钮周围的空格?

ruby-on-rails - 我使用 Nginx 在 Ubuntu 上运行的 VPS 崩溃了,无法再次运行

ruby-on-rails - 按 current_user 计算的所有交易的总和

ruby - 在 Ruby 中,为什么 Hash[:a, 1] 和 Hash[[[ :a, 1]]] 给出相同的结果 { :a => 1}, 而 Hash[[ :a, 1]] 给出一个空哈希?

html - 固定位置宽度

jquery - 如何在html5中的标题上添加悬停效果?

ruby-on-rails - OpenSSL::Cipher::CipherError Rails 5.2

ruby-on-rails - Rspec通过范围验证唯一性