我的观点有问题。我在样式表中使用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视图机制。
答案 0 :(得分:1)
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属性为您提供标题为“自定义标签”的标签。
希望有所帮助。
答案 1 :(得分:0)
如果你想将class
传递给SimpleForm的输入,你应该使用
= f.input :name, :input_html => { :class => 'input-text' }