simple_form には、:prepend
または両方のラッパーしかあり:append
ませんが、同時に両方はありません。幸いなことに、両方を行うカスタム ラッパーを作成するのは非常に簡単です。ラッパーの 1 つをコピーして貼り付け、少し変更するだけです。
これが私の解決策です:
config/initializers/simple_form.rb
config.wrappers :prepend_append, :tag => 'div', :class => "control-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 input-append' do |pa|
pa.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
そして、あなたの見解では:
= f.input :url, wrapper: :prepend_append, label: false do
%span.add-on something
= f.input_field :url, input_html: { class: "span2" }
%span.add-on something
最後に、これを css に追加します。
.input-prepend .add-on,
.input-append input {
float: left;
}
それが役立つことを願っています。必ずサーバーを再起動してください。