【发布时间】:2018-04-19 00:05:00
【问题描述】:
我正在尝试在 Rails 应用程序的 ActiveAdmin 中创建一个新的自定义过滤器。当我输入以下代码时
filter :premium_scenes_in
它将输入字段显示为文本输入字段(带有选项“包含”、“等于”等),但我希望输入字段为带有选项“等于”、“大于”或“小于”的数字。
我尝试使用:
filter :premium_scenes_in, as: :numeric
或者
filter :premium_scenes_in, as: :numeric_range
但是每次都显示错误Unable to find input class NumaricRangeInput
这是我在模型中的代码
ransacker :premium_scenes,
formatter: proc { |number|
results = Tour.all.map{|tour| tour if tour.scenes.count > number}
results = results.present? ? results : nil
}, splat_params: true do |parent|
parent.table[:id]
end
【问题讨论】:
-
注意:我对您尝试做的事情没有什么经验,因此无法提供具体帮助......但我注意到这里可能是一个错字:
NumaricRangeInput,只是想我应该指出它以防您的代码中出现拼写错误(例如,您无意中声明了as: :numaric_range或其他东西),而不仅仅是问题......值得仔细检查所有小东西。 -
我没有得到你。我应该使用什么来代替 numaric_range ?
-
错误显示为 Num-a-ricRangeInput,而不是预期的 Num-e-ricRangeInput。
-
我明白你的意思。是的,我改变了那个。这是一种类型,但仍然不能解决我的问题。现在它显示
undefined method 'premium_scenes_in_equals' for Ransack::Search<class: Tour, base: Grouping <combinator: and>>:Ransack::Search -
这听起来像是一个新的单独的错误...我会先在你的项目中搜索
premium_scenes_in_equals,看看它试图在哪里调用它。
标签: ruby-on-rails ruby activeadmin ransack ruby-on-rails-5.1