使用curl对多个字段进行Ransack查询

时间:2017-01-10 14:36:56

标签: ruby-on-rails ruby ransack

使用Ransack Rubygem,我试图使用curl对两个条件进行查询。这是为了将搜索功能添加到API中。

查询单个字段

curl -X GET -G 'http://localhost:3000/api/v2/products' -d 'q[barcode_eq]=7610200237576'

这有效

Processing by Api::V2::ProductsController#index as */*
  Parameters: {"q"=>{"barcode_eq"=>"761063205021"}}
  Product Load (0.4ms)  SELECT  "products".* FROM "products" WHERE     "products"."barcode" = '761063205021' LIMIT 50 OFFSET 0

查询两个字段

 curl -X GET -G 'http://localhost:3000/api/v2/products' -d 'q[barcode_eq]=7610200237576' -d 'q[barcode_eq]=7616800205113'

忽略第一个查询

 Started GET "/api/v2/products?q[barcode_eq]=7610200237576&q[barcode_eq]=7616800205113" for ::1 at 2017-01-10 15:34:28 +0100
  Processing by Api::V2::ProductsController#index as */*
  Parameters: {"q"=>{"barcode_eq"=>"7616800205113"}}
  Product Load (0.6ms)  SELECT  "products".* FROM "products" WHERE "products"."barcode" = '7616800205113' LIMIT 50 OFFSET 0

使用curl或ajax搜索(和/或)多个字段的正确句子是什么。

1 个答案:

答案 0 :(得分:1)

我会使用*_in匹配器:

 curl -X GET -G 'http://localhost:3000/api/v2/products' -d 'q[barcode_in][]=7610200237576' -d 'q[barcode_in][]=7616800205113'

注意_in而不是_eq和空括号([]