我的观点有问题。我正在为样式表使用 zurb foundation,当我在表单中输入错误输入时,我在表单上方收到错误,但包含错误的字段未用红色包裹。进一步研究,没有用于输入字段的 field_with_errors div 包装器。在进一步研究之后,我发现如果我使用 f.input 而不是 f.text_field,我会得到正确的错误包装。
由于 zurb 具有 text_field、text_area 等样式。我正在使用这些样式,但我没有从 rails 获得错误 div。有什么好的解决办法吗?
在这里,我得到了正确的 Zurb 基础样式,但没有 field_with_errors div:
.field
= f.label :name
= f.text_field :name, :class => "input-text"
这里我没有得到 Zurb 样式,但元素被 field_with_errors div 包裹:
.field
= f.label :name
= f.input :name, :class => "input-text"
所以基本上 f.text_field 助手似乎以某种方式绕过了提供 div 类来显示错误的 Rails View 机制。
最佳答案
f.text_field
是 Rails 表单助手,而不是 simple_form 的助手(因为你用简单表单标记了它,我假设你正在使用它)。由于简单表单仅包装其自身的错误属性,因此它忽略了 Rails 表单辅助属性。
你可能想要的是
= f.input :name, :as => :string
你也不需要你自己的带有 simple_form 的标签,所以我们可以将 f.label
和 f.text_field
压缩成:
= f.input :name, :as => :string, :label => "Custom label"
如果您不使用 :label 属性,它将默认为符号的名称,在这种情况下您的标签将为“名称”。使用 :label 属性可以为您提供一个名为“自定义标签”的标签。
希望对您有所帮助。
关于css - 对于使用 f.text_field 创建的字段,不使用 field_with_errors 包装 css div 但适用于 f.input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11188845/