更新:所以,我发现这 ,显然这就是为什么做事情的这种老办法是行不通的,ActiveAdmin必须使用Formtastic 2.x版本 作为导演,我现在已经创建了一个文件, app/inputs/date_picker_input.rb
看起来像这样:
class DatePickerInput
include Formtastic::Inputs::Base
def to_html
puts "this is my datepickerinput"
end
end
而我的控制器现在看起来是这样的:
f.input :open_date, :as => :date_picker
f.input :close_date, :as => :date_picker
但现在我遇到了此问题:
ActionView::Template::Error (undefined method 'html_safe' for nil:NilClass): 1: render renderer_for(:edit)
有什么想法吗?
我碰到一个问题,Formtastic自动格式化日期,格式,我不想(YMD H:我:■Z),当我尝试呈现:as => string
,所以我可以在球场上使用日期选择器。 在试图解决这个问题,我遇到了这个解决方案 。
这似乎是有道理的,是我处理相同问题。 不过,我似乎并没有能够实现修复,我不知道是否是因为正在通过ActiveAdmin使用Formtastic。 所以,在这里就是我试图做的:
在控制器中,我已经改变了方法,例如:
f.input :open_date, :as => :date
我也试过这一点,虽然我的问题是,即使不能够得到这一点:
f.input :open_date, :as => :date_input
我在创建文件lib/datebuilder.rb
用下面的代码:
class DateBuilder < Formtastic::SemanticFormBuilder
def date_input(method, options)
current_value = @object.send(method)
html_options ||= {:value => current_value ? I18n.l (current_value) : @object.send("#{method}_before_type_cast")}
self.label(method, options.delete(:label), options.slice (:required)) +
self.send(:text_field, method, html_options)
end
end
我不知道,即使将固定的格式,因为我想,但我想如果我能先手Formtastic使用这种方法,我可以改变它根据需要(目前把这个从链接上面提到的解决方案)。
本文提到你需要一个行添加到您formtastic初始化器使用这个自定义输入:
Formtastic::SemanticFormHelper.builder = Formtastic::DateBuilder
我没有在这个初始化文件config/initializers
,所以我说这( config/initializers/formtastic.rb
与上面的线)。 我现在运行到的问题是试图启动Rails应用程序时,这个错误:
../config/initializers/formtastic.rb:1:in '<top (required)>': uninitialized constant Formtastic::SemanticFormHelper (NameError)
我也试过这个语法在该文件中,而不是:
module Formtastic
module SemanticFormHelper
self.builder = DateBuilder
end
end
这使我这个错误,而不是: ../config/initializers/formtastic.rb:3:in '<module:SemanticFormHelper>': uninitialized constant Formtastic::SemanticFormHelper::DateBuilder (NameError)
如果我在完全错误的方式去了解这个请让我知道,否则就越来越Formtastic使用这种自定义输入类型将是惊人的任何帮助!