使用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搜索(和/或)多个字段的正确句子是什么。
答案 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
和空括号([]
)