2010-04-28 72 views
5

如何将我自己的字段类型添加到formtastic?Formtastic,自己的:作为输入类型

对于为例,我需要有一个自定义的日期时间投入,我想是这样的:

<%= 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提供的配置初始化程序中完成。 – 2010-04-29 00:50:25