Ruby on rails 3 使用简单的表单和引导添加和前置

Ruby on rails 3 使用简单的表单和引导添加和前置,ruby-on-rails-3,haml,simple-form,Ruby On Rails 3,Haml,Simple Form,我需要能够使用简单的表单输入标签使用引导附加和前置。我可以很容易地用一个来做,但不能让它们都工作。这可能吗 这是我用haml做的,这是一个前置词,但我需要另一个前置词,所以用append = f.input :domain, wrapper: :prepend, label: false do %span.add-on %span.icon @ = f.input_field :domain simple_form仅为:prepend或:append提供包装,但不能同时提供这两

我需要能够使用简单的表单输入标签使用引导附加和前置。我可以很容易地用一个来做,但不能让它们都工作。这可能吗

这是我用haml做的,这是一个前置词,但我需要另一个前置词,所以用append

= f.input :domain, wrapper: :prepend, label: false do
  %span.add-on
    %span.icon @
  = f.input_field :domain

simple_form仅为
:prepend
:append
提供包装,但不能同时提供这两种包装。幸运的是,构建同时完成这两项功能的自定义包装器非常容易。只需复制粘贴其中一个包装,并对其进行轻微修改

以下是我的解决方案:

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;
}

希望有帮助。确保重新启动服务器。

最简单的方法是:

<%= f.input :field, :wrapper_html => {class: "input-prepend input-append"} do %>
  <span class="add-on">$</span>
    <%= f.input_field :field %>
  <span class="add-on">%</span>
<% end %>
{class:“输入前置输入附加”}do%>
$
%