Formtastic,own:作为输入类型

ast*_*nic 5 ruby forms input formtastic

如何将自己的字段类型添加到formtastic中?

例如,我需要一个自定义日期时间输入,我想要这样的东西:

<%= f.input :start_date , :as => :my_date %>
Run Code Online (Sandbox Code Playgroud)

这显然不起作用,因为formtastic不知道:my_date(只有:boolean,:string,:datetime等等......)

但是如何添加其他输入类型?

Jam*_*sen 9

您需要添加自定义输入法:

class MyCustomFormtasticFormBuilder < Formtastic::SemanticFormBuilder
  protected
  def my_date_input(method, options)
    basic_input_helper(:text_field, :my_date, method, options)
  end
end
Run Code Online (Sandbox Code Playgroud)

这对于新的HTML5输入类型来说是完美的.你这样使用它:

<% form_form @model, :builder => MyCustomFormtasticFormBuilder  do |f| %>
   <%= f.input :start_date, :as => :my_date
<% end %>
Run Code Online (Sandbox Code Playgroud)

  • 完美答案.我唯一的补充是你需要将Formtastic配置为MyCustomFormtasticFormBuilder而不是Formtastic :: SemanticFormBuilder,这可以在Formtastic提供的配置初始化程序中完成. (2认同)