请教一下大家,有没有遇到过使用 ransack 搜索,输入框的搜索条件中的空格也被算作搜索内容的问题。
例如:
SELECT "users".* FROM "users" LEFT OUTER JOIN "posts" ON "posts"."user_id" = "users"."id" WHERE ("posts"."title" ILIKE '% a %')
我在‘a’前后故意加空格,SQL 语句中空格也算搜索内容了。请问下有什么自动去空格的办法吗?
string.gsub!(' ', '')
用strip 比较合适,gsub 把字符中间的空格也会去掉
strip
gsub
@fangxing204 我了解到 strip 可以去前后的空格,但是我用的是 ransack, 例如:
ransack 自动处理了搜索条件。我要在 ransack 处理之前判断字段 然后 strip 吗。如果涉及很多条件,每个都判断那就很麻烦。
params[:q].each do |k, v| params[:q][k] = v.strip end
@michael0015 @fangxing204 感谢,最后的方法可以。