Ransack 搜索在 rails 模型中不起作用,但在 rails 控制台中工作正常

Ransack search not working in rails model but working fine in rails console

我对 Ransack 有疑问。这是我的搜索表单

= search_form_for @query, :url => search_products_path, :html => { :method => :get } do |f|
    %dl.left
      %dl.left
        %dt= f.label :sku, t('shoppe.orders.sku')
        %dd= f.text_field :with_sku
      %dl.right
        %dt= f.label :name, t('shoppe.products.name')
        %dd= f.text_field :with_translated_name

我的搜索模型代码是

def self.with_sku(sku_string)
      sku_string = sku_string.squish
      where("LOWER(shoppe_products.sku) LIKE ?" , "%#{sku_string}%".downcase)
end

所以。问题是当输入数字字段并将其转换为字符串时,SKU 搜索不起作用,但在 rails 控制台中完成后它工作正常。任何帮助都会很受欢迎:)

我可能是错的,但我认为 squish 是一种字符串方法。尝试在整数上调用它时出现错误:

NoMethodError: undefined method `squish' for 245:Integer

为了安全起见,请先将您的搜索值显式转换为字符串,然后它应该可以工作:

str = str.to_s.squish

其实是我的一些联想出了问题。我更新了它们,它工作正常。