自分のフィールドタイプをformtasticに追加するにはどうすればよいですか?
たとえば、カスタムの日時入力が必要です。次のようなものが必要です。
<%= f.input :start_date , :as => :my_date %>
formtasticは:my_dateを認識しないため(:boolean、:string、:datetimeなどのみ)、これは明らかに機能しません。
しかし、どうすれば入力タイプを追加できますか?
自分のフィールドタイプをformtasticに追加するにはどうすればよいですか?
たとえば、カスタムの日時入力が必要です。次のようなものが必要です。
<%= f.input :start_date , :as => :my_date %>
formtasticは:my_dateを認識しないため(:boolean、:string、:datetimeなどのみ)、これは明らかに機能しません。
しかし、どうすれば入力タイプを追加できますか?
カスタム入力メソッドを追加する必要があります:
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 %>
Formtastic::FormBuilder をサブクラス化しないでください
Formtastic 1.x では、Formtastic::FormBuilder をサブクラス化して独自の入力を追加することが以前に推奨されていました。これは Formtastic 2 では推奨されなくなり、期待どおりに動作しません。
https://github.com/justinfrench/formtastic
http://justinfrench.com/notebook/formtastic-2-preview-custom-inputs