2010-04-28 15 views
5

Come posso aggiungere i miei tipi di campo a formtastic?Formtastic, proprio: come tipo di input

Per exemple, ho bisogno di avere un ingresso datetime personalizzato, e voglio qualcosa di simile:

<%= f.input :start_date , :as => :my_date %> 

Questo, ovviamente, non funziona perché Formtastic non conosce il: my_date (solo: booleano, : string,: datetime e così via ...)

Ma come posso aggiungere ulteriori tipi di input?

risposta

9

è necessario aggiungere un metodo di input personalizzato:

class MyCustomFormtasticFormBuilder < Formtastic::SemanticFormBuilder 
    protected 
    def my_date_input(method, options) 
    basic_input_helper(:text_field, :my_date, method, options) 
    end 
end 

che è perfetto per, dicono i nuovi tipi di input HTML5. Si utilizza in questo modo:

<% form_form @model, :builder => MyCustomFormtasticFormBuilder do |f| %> 
    <%= f.input :start_date, :as => :my_date 
<% end %> 
+2

risposta perfetta. La mia unica aggiunta è che devi configurare Formtastic a noi MyCustomFormtasticFormBuilder invece di Formtastic :: SemanticFormBuilder, che può essere fatto nell'inizializzatore di configurazione fornito con Formtastic. –

Problemi correlati