Ответ 1
Вы можете использовать:
= f.input :remember_me, as: :boolean, inline_label: 'Remember me', label: false
Использование Simple_form 2.0.2
Простой код формы с использованием HAML:
= f.input :remember_me, as: :boolean, inline_label: 'Remember me'
Но это делает это:
<div class="control-group boolean optional">
<label class="boolean optional control-label" for="admin_remember_me">Remember me</label>
<div class="controls">
<input name="admin[remember_me]" type="hidden" value="0" />
<label class="checkbox"><input class="boolean optional" id="admin_remember_me" name="admin[remember_me]" type="checkbox" value="1" />Remember me</label>
</div>
</div>
Как удалить эту первую метку, которая отображается, так что у меня есть только встроенная метка?
Вы можете использовать:
= f.input :remember_me, as: :boolean, inline_label: 'Remember me', label: false
Нашел решение после многого Google.
Используйте input_field
вместо input
, который не будет автоматически генерировать метку.
= f.input_field :remember_me, as: :boolean, inline_label: 'Remember me'
Для кого это не работает
= f.input_field...
Используйте этот способ
= f.check_box...
С simple_form 2.1.0 и rails 3.0.20 ни одно из перечисленных здесь решений не работает (я не хочу использовать f.input_field, потому что это признание поражения).
Недопустимая часть - это boolean_style:
options.merge!({label: false, boolean_style: :inline})
Я предлагаю вам создать для этого пользовательский ввод (например: inline_checkbox)
boolean_style настроен как: вложенный по умолчанию, я думаю:
# Defaults to :nested for bootstrap config.
# :inline => input + label
# :nested => label > input
config.boolean_style = :nested
.control-group.error .help-inline {
display: none;
}
Это должно работать, оно работает для меня на рельсах 3.2 и simple_form 2.x +
Возможно, слишком поздно, но, воодушевленный ответом gamov, я сделал эту специальную оболочку из встроенного бутстрапа в файле инициализации " config/simple_form_bootstrap.rb":
config.wrappers :horizontal_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.optional :readonly
b.use :label, class: 'col-sm-3 control-label'
b.use :input
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end
который генерирует этот html:
<div class="form-group boolean optional user_admin">
<label class="boolean optional col-sm-3 control-label" for="user_admin">Admin</label>
<div class="col-sm-9 checkbox-inline">
<input name="user[admin]" value="0" type="hidden">
<input class="boolean optional" id="user_admin" name="user[admin]" value="1" type="checkbox">
</div>