新手问题 RanSack 搜索自动去空格的问题。

bluswang · December 13, 2017 · Last by bluswang replied at December 13, 2017 · 1205 hits

请教一下大家,有没有遇到过使用 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 把字符中间的空格也会去掉

@fangxing204 我了解到 strip 可以去前后的空格,但是我用的是 ransack, 例如:

ransack 自动处理了搜索条件。我要在 ransack 处理之前判断字段 然后 strip 吗。如果涉及很多条件,每个都判断那就很麻烦。

params[:q].each do |k, v|
  params[:q][k] = v.strip
end

@michael0015 @fangxing204 感谢,最后的方法可以。

bluswang closed this topic. 13 Dec 17:28
bluswang reopened this topic. 13 Dec 17:29
bluswang closed this topic. 13 Dec 17:29
You need to Sign in before reply, if you don't have an account, please Sign up first.