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
其实是我的一些联想出了问题。我更新了它们,它工作正常。
我对 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
其实是我的一些联想出了问题。我更新了它们,它工作正常。