我遇到了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控制台中完成此操作时,它正常工作。任何帮助都会被爱:)
答案 0 :(得分:1)
我可能错了,但我认为squish是一种字符串方法。尝试在整数上调用它时出错:
NoMethodError: undefined method `squish' for 245:Integer
为了安全起见,首先将搜索值显式地转换为String,然后它应该起作用:
str = str.to_s.squish
答案 1 :(得分:0)
我的一些协会实际上是一个问题。我更新了它们,一切正常。