Ich versuche Bootstrap 3 mit Simple_forms (von Master) zu integrieren.Bootstrap 3 + simple_forms Checkboxen
Gerade jetzt, ich habe folgendes:
config/initializers/simple_form.rb:
SimpleForm.setup do |config|
config.wrappers :default, class: :input,
hint_class: :field_with_hint, error_class: :field_with_errors do |b|
b.use :html5
b.use :placeholder
b.optional :maxlength
b.optional :pattern
b.optional :min_max
b.optional :readonly
b.use :label_input
b.use :hint, wrap_with: { tag: :span, class: :hint }
b.use :error, wrap_with: { tag: :span, class: :error }
end
config.default_wrapper = :default
config.boolean_style = :nested
config.button_class = 'btn'
end
config/initializers/simple_form_bootstrap.rb:
SimpleForm.setup do |config|
config.input_class = 'form-control'
config.wrappers :bootstrap, tag: 'div', class: 'form-group', error_class: 'error' do |b|
b.use :html5
b.use :placeholder
b.use :label
b.wrapper tag: 'div', class: 'controls' do |ba|
ba.use :input
ba.use :error, wrap_with: { tag: 'span', class: 'help-inline' }
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end
end
config.wrappers :prepend, tag: 'div', class: "form-group", error_class: 'error' do |b|
b.use :html5
b.use :placeholder
b.use :label
b.wrapper tag: 'div', class: 'controls' do |input|
input.wrapper tag: 'div', class: 'input-prepend' do |prepend|
prepend.use :input
end
input.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
input.use :error, wrap_with: { tag: 'span', class: 'help-inline' }
end
end
config.wrappers :append, tag: 'div', class: "form-group", error_class: 'error' do |b|
b.use :html5
b.use :placeholder
b.use :label
b.wrapper tag: 'div', class: 'controls' do |input|
input.wrapper tag: 'div', class: 'input-append' do |append|
append.use :input
end
input.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
input.use :error, wrap_with: { tag: 'span', class: 'help-inline' }
end
end
config.default_wrapper = :bootstrap
end
app/ansichten/devise/sessions/new.html.haml
%div.panel.panel-auth
%div.panel-heading
%h3.panel-title Sign in
%div.panel-body
= simple_form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f|
.form-inputs
= f.input :email, :required => false, :autofocus => true
= f.input :password, :required => false
= f.input :remember_me, :as => :boolean if devise_mapping.rememberable?
.form-actions
= f.button :submit, "Sign in"
%hr
= render "devise/shared/links"
Aber das generierte HTML ist falsch. Nun, es ist richtig nach BS2, aber falsch nach BS3. Hier ist sie:
<div class="form-group boolean optional user_remember_me">
<label class="boolean optional control-label" for="user_remember_me">
Remember me
</label>
<div class="controls">
<input name="user[remember_me]" type="hidden" value="0">
<label class="checkbox">
<input class="boolean optional form-control" id="user_remember_me" name="user[remember_me]" type="checkbox" value="1">
</label>
</div>
</div>
Aber es sollte eigentlich so etwas wie:
<div class="checkbox">
<label>
<input type="checkbox"> Check me out
</label>
</div>
Es ist wahrscheinlich möglich zu beheben diese um Wrapper Hacking, aber ich kann nicht daran zu arbeiten. Kann mir jemand dazu einen Rat geben?
Prost
hat nicht funktioniert. Es fügt immer noch die 'Form-Control'-Klasse hinzu, die alles durcheinander bringt. :/ – caarlos0
Es ist eine "Form-Control" -Klasse hinzufügen? Ich sehe das nicht in deinem Initialisierer ... außer du meintest "Form-Gruppe"? Wenn nicht, könnte etwas anderes passieren (vielleicht eine benutzerdefinierte Eingabe?). Stellen Sie sicher, dass Sie den Server neu starten, nachdem Sie den Initializer simple_form_bootstrap.rb geändert haben, oder dass die Änderung nicht wirksam wird. Habe es nochmal getestet und es funktioniert gut mit "wrapper:: checkbox" in der Eingabezeile. – mwalsher
Wohlgemerkt, ich benutze auch den Master-Zweig von simple_form (Version 3.0.0) ... es ist durchaus möglich, dass es eine Änderung gegenüber der Version gab, auf die von rubygems (2.1.0) verwiesen wird. Versuchen Sie, Ihre gemfile Referenz zu ändern: "Gem 'simple_form', GitHub: 'Plataformatec/Simple_form'" und Lauf Juwel Update – mwalsher