瞎扯淡 当 ransack 遇到英文下划线该怎么解决?

easonlovewan · 2016年01月11日 · 最后由 easonlovewan 回复于 2016年01月11日 · 2058 次阅读

老梗:想问一下大家,你们在用 ransck 时,遇到只输入英文下划线返回"所有数据"是怎么解决的? 举一个栗子:

@q = Product.ransack(params[:q])
@products = @q.result
<%= search_form_for @q do |f| %>
  <%= f.label "产品名称:" %>
  <%= f.search_field :name_cont, placeholder: '请输入产品名称' %>
<%= f.submit "搜索" %>

当在文本框中输入"英文下划线时" 发出:select * from table where x like '%_%' ;类似这样的一条 sql 当然 ransack 不会对 mysql 的特殊字符进行转义的,请问大家都是怎么处理这种情况的?

又被 @ 了,这个问题非要管理员才能回答?不要把问题标记为 “紧急”, 即使对你而言的确如此

#2 楼 @rei 😊😊😊没有下次了,您还是专注于解答我这个问题吧😂

@rei 我提议再有下次,直接封号。

看样子楼主没有学会正确使用 Google 或者自备梯子,找到两个链接: https://github.com/activerecord-hackery/ransack/issues/176 https://github.com/activerecord-hackery/ransack/pull/171

需要 登录 后方可回复, 如果你还没有账号请 注册新账号