Skip to content

Instantly share code, notes, and snippets.

@dalpo
Created December 12, 2013 15:48
Show Gist options
  • Save dalpo/7930119 to your computer and use it in GitHub Desktop.
Save dalpo/7930119 to your computer and use it in GitHub Desktop.
= simple_form_for @post, html: { class: 'form-horizontal' }, defaults: { wrapper: :horizontal_form } do |f|
= f.error_notification
.form-inputs
= f.input :first_name
= f.input :last_name
= f.input :email
.form-actions
= f.button :submit
# http://stackoverflow.com/questions/14972253/simpleform-default-input-class
# https://github.com/plataformatec/simple_form/issues/316
inputs = %w[
CollectionSelectInput
DateTimeInput
FileInput
GroupedCollectionSelectInput
NumericInput
PasswordInput
RangeInput
StringInput
TextInput
]
inputs.each do |input_type|
superclass = "SimpleForm::Inputs::#{input_type}".constantize
new_class = Class.new(superclass) do
def input_html_classes
super.push('form-control')
end
end
Object.const_set(input_type, new_class)
end
# Use this setup block to configure all options available in SimpleForm.
SimpleForm.setup do |config|
config.boolean_style = :nested
config.wrappers :bootstrap3, tag: 'div', class: 'form-group', error_class: 'has-error',
defaults: { input_html: { class: 'default_class' } } do |b|
b.use :html5
b.use :min_max
b.use :maxlength
b.use :placeholder
b.optional :pattern
b.optional :readonly
b.use :label_input
b.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
b.use :error, wrap_with: { tag: 'span', class: 'help-block has-error' }
end
config.wrappers :horizontal_form, tag: 'div', class: 'form-group', error_class: 'has-error',
defaults: { input_html: {} } do |b|
b.use :html5
b.use :min_max
b.use :maxlength
b.use :placeholder
b.wrapper tag: 'label', class: 'col-sm-4 control-label' do |label|
label.use :label_text
end
b.wrapper tag: 'div', class: 'col-sm-8' do |input|
input.use :input
input.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
end
b.use :error, wrap_with: { tag: 'span', class: 'help-block has-error' }
end
# Wrappers for forms and inputs using the Twitter Bootstrap toolkit.
# Check the Bootstrap docs (http://getbootstrap.com/)
# to learn about the different styles for forms and inputs,
# buttons and other elements.
config.default_wrapper = :bootstrap3
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment