2012-02-28 10 views
5

przy użyciu domyślnego simple_form 2 opakowania, generuje znaczników, który wygląda tak:SimpleForm 2: wejściowe znaczniki wewnątrz owijki

<div class="..."> 
    <label>...</label> 
    <input ... /> 
</div> 

chciałbym uzyskać znaczników, w którym tag wejściowy jest się wewnątrz otoki takie jak to:

<div class="..."> 
    <label>...</label> 
    <div class="..."> 
    <input ... /> 
    </div> 
</div> 

Czy muszę utworzyć niestandardowy składnik dla tego zachowania?

Dzięki.

Nicolas.

Odpowiedz

7

to sprawdzić:

Owijka API nie jest jeszcze dobrze udokumentowane, ale spędziłem trochę czasu próbuje to rozgryźć. Oto prosty przykład, który można ustawić wewnątrz prostego inicjalizatora.

# Use this setup block to configure all options available in SimpleForm. 
SimpleForm.setup do |config| 
    # Wrappers are used by the form builder to generate a complete input. 
    # You can remove any component from the wrapper, change the order or even 
    # add your own to the stack. The options given to the wrappers method 
    # are used to wrap the whole input (if any exists). 

    config.wrappers :GIVE_YOUR_WRAPPER_A_NAME, :class => 'clearfix', :error_class => nil do |b| 
    b.use :placeholder 
    b.use :label 
    b.use :tag => 'div', :class => 'WHATEVER_YOU_WANT_TO_CALL_IT' do |ba| 
     ba.use :input 
     ba.use :error, :tag => :span, :class => :'help-inline' 
     ba.use :hint, :tag => :span, :class => :'help-block' 
    end 
    end 
end 

Następnie podczas tworzenia formularza wystarczy określić opakowanie, którego chcesz użyć:

<%= simple_form_for @user, wrapper: 'WHATEVER_YOU_CALLED_YOUR_WRAPPER' do |form| %> 
<%end%> 

nadzieję, że to pomaga.

+0

to było to! Nie wiedziałem, że można jednoznacznie zdefiniować "use: input", aby kontrolować pozycję wejściowego znacznika. To powinno być napisane w dokumencie. Wspaniały! –

Powiązane problemy