rails ransack

ransack主要用于搜索

用法

<div class="form-input-hr">
        <%= text_field_tag("query[name_cont]", params["query"] && params["query"]["name_cont"]) %>
      </div>


products = Product.ransack(params[:query])
      @sort = params[:sort].blank? ? 'id' : params[:sort]
      @order = params[:order].blank? ? 'desc' : params[:order]
      if @order == 'desc'
        @next_order = 'asc'
      else
        @next_order = 'desc'
      end
      @products = paginate(products.result.includes(:shop).order("#{@sort} #{@order}"))

说明:

  • *_eq - equal
  • *_not_eq - not equal
  • *_matches - matches with LIKE, e.g. q[email_matches]=%@gmail.com
  • Also: *_does_not_match*_matches_any*_matches_all*_does_not_match_any*_does_not_match_all
  • *_lt - less than
  • *_lteq - less than or equal
  • *_gt - greater than
  • *_gteq - greater than or equal
  • *_present - not null and not empty, e.g. q[name_present]=1 (SQL: col is not null AND col != '')
  • *_blank - is null or empty. (SQL: col is null OR col = '')
  • *_null*_not_null - is null, is not null
  • *_in - match any values in array, e.g. q[name_in][]=Alice&q[name_in][]=Bob
  • *_not_in - match none of values in array
  • *_lt_any*_lteq_any*_gt_any*_gteq_any - Compare to list of values, at least positive. (SQL: col > value1 OR col > value2)
  • *_matches_any*_does_not_match_any - same as above but with LIKE
  • *_lt_all*_lteq_all*_gt_all*_gteq_all - Compare to list of values, all positive. (SQL: col > value1 AND col > value2)
  • *_matches_all*_does_not_match_all - same as above but with LIKE
  • *_not_eq_all - none of values in a set
  • *_start*_not_start*_start_any*_start_all*_not_start_any*_not_start_all - start with, (SQL: col LIKE 'value%')
  • *_end*_not_end*_end_any*_end_all*_not_end_any*_not_end_all - end with, (SQL: col LIKE '%value')
  • *_cont*_cont_any*_cont_all*_not_cont*_not_cont_any*_not_cont_all - contains value, using LIKE
  • *_true*_false - is true and is false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值