2015年问候和节日快乐 -
我尝试按Boris Stall的优秀博客文章添加数值范围过滤。
我正在跑步:
我一直遇到这个错误:
无法找到输入类NumericRangeInput
这是我的config / initializers / active_admin / filter_numeric_range_input.rb
module ActiveAdmin
module Inputs
class FilterNumericRangeInput < ::Formtastic::Inputs::StringInput # Add filter module wrapper
include ActiveAdmin::Inputs::Filters::Base
def to_html
input_wrapping do
[ label_html,
builder.text_field(gt_input_name, input_html_options(gt_input_name)),
template.content_tag(:span, "-", :class => "seperator"),
builder.text_field(lt_input_name, input_html_options(lt_input_name)),
].join("\n").html_safe
end
end
def gt_input_name
"#{method}_gteq"
end
alias :input_name :gt_input_name
def lt_input_name
"#{method}_lteq"
end
def input_html_options(input_name = gt_input_name)
current_value = @object.send(input_name)
{ :size => 10, :id => "#{input_name}_numeric" , :value => current_value }
end
end
end
end
我只是在尝试:
filter :id, as: :numeric_range
我研究过集成AA,Ransack,Formtastic等的潜在问题,但我还不够先进,不知道从哪里开始。非常感谢任何帮助。
答案 0 :(得分:2)
似乎较新版本的ActiveAdmin可能有不同的策略来加载或命名输入模块中的其他类。我注意到文件中的类名称为FilterNumericRangeInput
。因此,AA必须做一些事情才能转换名称,我们只需要确定哪个符号可以正确转换。因此,作为实验,我尝试将app/admin/test.rb
中的符号重命名为:
filter :id, as: :numeric_range_2
我收到了错误:
Unable to find input class NumericRange2Input
因此,我尝试将符号名称更改为:
filter :id, as: :filter_numeric_range
它有效。
答案 1 :(得分:0)
此时,您只需要filter :id, as: :numeric