Ruby on Rails + Formtastic + jQuery UI日期选择器

3
我正在尝试使用Formtastic安装jQuery UI日期选择器。我按照http://blog.brzezinka.eu/webmaster-tips/ruby/ruby-on-rails-formtastic-jquery-ui-datepicker中的步骤进行操作:
  1. 添加了jQuery UI(已确认它可以与其他元素一起使用)
  2. 安装了Formtastic 2.0.2(已确认它可以与其他元素一起使用)
  3. 调整了application.js文件
  4. 按照教程和评论中所述调整了Formtastic.rb文件
  5. 更改了视图
但是,当我在<%= f.input :dtstart, :as => :datepicker %>处时,我一直收到“Formtastic::UnknownInputError”的错误提示。我搜索了这个错误,但找不到任何线索。有没有人有什么想法?我使用的是rails 3.0.3版本。
3个回答

8
如果您正在使用:as => :datepicker,则必须为其创建自定义输入框。
如文档所示,在app/inputs中创建一个名为date_picker_input.rb的新文件。
class DatePickerInput < Formtastic::Inputs::StringInput
  def input_html_options
    super.merge(:class => "datePicker")
  end
end

您只需在application.js中触发JQuery UI插件即可:

$('.datePicker').datepicker();

如果您不想麻烦自己创建自定义输入框,可以直接添加以下类:

<%= f.input :date, :input_html => { :class => 'datePicker'} %>

2

0

再一次,离原帖很远的答案。但是如果你在搜索如何在Formtastic 3.1和Rails 4中实现此功能(可能适用于其他情况,但未经测试),我所做的就是看看ActiveAdmin是如何实现的。 在Gemfile中添加formtastic gem并安装后,您可以通过遵循他们文档中描述的模式将自己的as: :datepicker能力添加到Formtastic使用的input方法中

简单来说,创建下面的文件/目录(如果目录不存在),然后只需添加以下内容:

# <your app>/app/inputs/datepicker_input.rb
class DatepickerInput < ::Formtastic::Inputs::StringInput
   def input_html_options
      super.tap do |options|
         options[:class] = [options[:class], "datepicker"].compact.join(' ')
         options[:data] ||= {}
         options[:data].merge! datepicker_options
      end
   end

  private
  def datepicker_options
     options = self.options.fetch(:datepicker_options, {})
     options = Hash[options.map{ |k, v| [k.to_s.camelcase(:lower), v] }]
     { datepicker_options: options }
  end 
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接