Formtastic, собственный: как тип ввода - PullRequest
5 голосов
/ 28 апреля 2010

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

Например, мне нужно иметь пользовательский ввод даты и времени, и я хочу что-то вроде этого:

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

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

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

Ответы [ 2 ]

9 голосов
/ 28 апреля 2010

Вам необходимо добавить пользовательский метод ввода:

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 %>
4 голосов
/ 08 ноября 2011

Больше не подкласс Formtastic :: FormBuilder

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

https://github.com/justinfrench/formtastic

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

...