0

我的观点有问题。我在样式表中使用了 zurb 基础,当我在表单中输入错误的输入时,我在表单上方收到错误,但包含错误的字段没有用红色包裹。进一步研究,输入字段没有 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 视图机制。

4

2 回答 2

1

f.text_field是 Rails 表单助手,而不是 simple_form 的助手(因为你用 simple-form 标记了它,我假设你正在使用它)。由于简单表单只用错误包装自己的属性,因此它忽略了 rails 表单辅助属性。

你可能想要的是

= f.input :name, :as => :string

您也不需要自己的 simple_form 标签,因此我们可以浓缩f.labelf.text_field成为:

= f.input :name, :as => :string, :label => "Custom label"

如果您不使用 :label 属性,它将默认为符号的名称,在这种情况下,您的标签将是“名称”。使用 :label 属性可以为您提供一个名为“自定义标签”的标签。

希望有帮助。

于 2013-07-10T19:37:41.310 回答
0

如果你想传递class给 SimpleForm 的输入,你应该使用

= f.input :name, :input_html => { :class => 'input-text' }
于 2012-06-28T16:40:38.410 回答