2010-04-28 2 views
5

Как я могу добавить свои собственные типы полей в formtastic?Formtastic, собственный: как тип ввода

Для Exemple, мне нужно, чтобы иметь вход на заказ DATETIME, и я хочу что-то вроде этого:

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

Это, очевидно, не работает, потому что formtastic не знает: my_date (только: логическое значение, : string,: datetime и т. д.)

Но как добавить дополнительные типы ввода?

ответ

9

Вам нужно добавить метод пользовательского ввода:

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

, который идеально подходит для, скажем, новые типы ввода HTML5. Вы можете использовать его так:

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

Идеальный ответ. Мое единственное дополнение состоит в том, что тогда вам нужно настроить Formtastic для MyCustomFormtasticFormBuilder вместо Formtastic :: SemanticFormBuilder, который можно выполнить в инициализаторе конфигурации, поставляемом с Formtastic. –

4

Не подклассы Formtastic :: FormBuilder больше

Ранее было рекомендовано в Formtastic 1.x подкласс Formtastic :: FormBuilder добавить свои собственные входы. Это больше не рекомендуется в Formtastic 2 и не будет работать должным образом.

https://github.com/justinfrench/formtastic

http://justinfrench.com/notebook/formtastic-2-preview-custom-inputs

Смежные вопросы