【问题标题】:Numeric custom filter with ransacker is not working带有 ransacker 的数字自定义过滤器不起作用
【发布时间】: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


【解决方案1】:

我想你的意思是as: :number。支持的输入类型记录在Formtastic README here

【讨论】:

  • 我用过number,现在显示的是undefined method 'premium_scenes_in' for Ransack::Search<class: Tour, base: Grouping <combinator: and>>:Ransack::Search Did you mean? presence_in
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 2017-08-16
  • 2012-08-19
相关资源
最近更新 更多