Ransack搜索多个start_with值

时间:2014-08-19 18:41:30

标签: ruby-on-rails ransack

是否可以使用Ransack使用值数组搜索开头?

例如,Product.search(name_start: %w(a b))之类的内容会返回名称以' a'或者' b'。

或者,我有一个范围,但无法弄清楚如何使用ransacker或ransackable_scopes连接它。

1 个答案:

答案 0 :(得分:1)

据我所知,似乎没有接受数组的 starts_with 选项。但是,截至2014年8月19日,Ransack的主分支机构支持在搜索中引用范围。

在我的Gemfile中,

gem 'ransack', github: 'activerecord-hackery/ransack'

在我的模型中,

scope :starts_with_number, ->{ where("name  ~ '^(?![a-zA-Z])'") }

class << self
  def ransackable_scopes(auth_object = nil)
    [:starts_with_number]
  end
end

注意:上面的示例范围是为Postgres编写的。