所以我使用bootstrap-sass
和simple_form
gem并使用--boostrap
运行安装程序,这意味着它在simple_form_bootstrap.rb
目录中生成了config/initializers/
。< / p>
我正在尝试使用引导程序中的form-horizontal
类,但这需要将input
与div
包含col-xx-xx
类。
我查看了前面提到的初始化程序并看到了这个块:
config.wrappers :horizontal_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.use :placeholder
b.optional :maxlength
b.optional :pattern
b.optional :min_max
b.optional :readonly
b.use :label, class: 'col-sm-3 control-label'
b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
ba.use :input, class: 'form-control'
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end
end
似乎初始化程序已经将正确的类应用于标签并将输入标记包装在div中。然而,这种情况并非如此。初始化程序中是否有错误?
作为参考,这是表格:
<%= simple_form_for @article, remote: true, html: {class: "form-horizontal"} do |f| %>
<ul class="errors"></ul>
<%= f.input :author%>
<%= f.input :title%>
<%= f.button :submit, class: "btn btn-primary" %>
<% end %>
和相应的html:
<div class="form-group string optional article_author">
<label class="string optional control-label" for="article_author">...</label>
<input id="article_author" class="string optional form-control" type=".." name=".." value="..." style="..."></input>
</div>
所以看起来像初始化程序中的一些东西被添加为类表单控件而不是其余部分。为什么呢?
答案 0 :(得分:1)
因此,您需要在form_for
标记中应用包含wrapper: "form_horizontal"
的包装器。这将使用该名称的所有初始值设定项。