23

I am using simple_form in my Rails application, I tried to add form-horizontal class to my form.

<form accept-charset="UTF-8" action="/account/orders" class="simple_form new_order" data-validate="true" enctype="multipart/form-data" id="new_order" method="post" novalidate="novalidate">

When I use html: { class: "form-horizontal" } it change class="simple_form new_order" to class="simple_form form-horizontal".

What should I do to keep new_order class?

szpon
  • 285
  • 2
  • 3
  • 9

4 Answers4

65

it works for me like this

= simple_form_for @model, html: { class: "form-horizontal"} do |f|
  ...

it compiles to

<form accept-charset="UTF-8" action="/numbers" class="simple_form form-horizontal" id="new_number" method="post">
Pavel Kalashnikov
  • 2,092
  • 1
  • 19
  • 22
  • 3
    I think it's worth mentioning that this question was asked in Dec 2012. According to the version history, https://rubygems.org/gems/simple_form/versions, Simple Form 3 had not been released yet. In Simple Form 2, this answer is not correct. – Kurt Mueller Jun 10 '15 at 14:54
3

It's intended behaviour.

So if you want to change it you should monkey-patch simple_form_css_class method in this file.

Maksim Kalmykov
  • 1,293
  • 3
  • 20
  • 26
Vasiliy Ermolovich
  • 24,459
  • 5
  • 79
  • 77
3

this works for me config.form_class = 'form-horizontal' and keep new_model class

aminhotob
  • 1,056
  • 14
  • 17
0
input_html: { class: "form-horizontal"}

works fine in rails 7

ochi
  • 131
  • 1
  • 3