Ruby on Rails + Formtastic + jQuery UI DatePicker - PullRequest
3 голосов
/ 18 октября 2011

Я пытаюсь установить средство выбора даты jQuery UI с помощью Formtastic.Я следовал http://blog.brzezinka.eu/webmaster-tips/ruby/ruby-on-rails-formtastic-jquery-ui-datepicker, поэтому я:

  1. добавил пользовательский интерфейс jQuery (подтвердил, что он работает с другими элементами)
  2. установил Formtastic 2.0.2 (подтвердил, что он работает с другими элементами)
  3. Скорректированный application.js
  4. Скорректированный Formtastic.rb, как описано в руководстве и комментариях
  5. Измененный вид

Я продолжаю получать 'Formtastic:: UnknownInputError 'on <% = f.input: dtstart,: as =>: datepicker%>.Я гуглил и искал эту ошибку, но не могу найти подсказку, в каком направлении смотреть.У кого-нибудь есть идея?Я на рельсах 3.0.3

Ответы [ 3 ]

8 голосов
/ 30 ноября 2011

если вы используете :as => :datepicker, вы должны создать для него пользовательский ввод.

Как следует из документации, создайте новый файл в app/inputs с именем date_picker_input.rb

* 1007.*

Все, что вам нужно сделать, это запустить аддон JQuery UI в вашем application.js:

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

Если вы не хотите создавать пользовательский ввод, вы можете просто добавить класс напрямуюкак в:

<%= f.input :date, :input_html => { :class => 'datePicker'} %>
2 голосов
/ 24 ноября 2011

Я знаю, что это было очень давно, но для будущих поколений это потому, что в Rails 3 статьи много не хватает. Он обновил оригинальную статью, указав на версию файла плагина: http://github.com/demersus/formtastic_datepicker_inputs

0 голосов
/ 22 сентября 2016

Еще раз, длинный отдаленный ответ из оригинального поста. В случае, если вы оказались здесь в поисках того, как сделать это с помощью Formtastic 3.1 и Rails 4 (может работать иначе, но не проверено), я всего лишь посмотрел, как ActiveAdmin реализует их. С помощью formtastic Установив gem в свой Gemfile, вы можете добавить свою собственную возможность as: :datepicker к методу input, используемому Formtastic , следуя шаблону, который они описывают в своей документации .

Проще говоря, создайте файл / каталог ниже (если каталог еще не существует) и просто добавьте это:

# <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
...