使用 curl 对多个字段进行 Ransack 查询
Ransack query on multiple fields with curl
使用 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.
搜索(和/或)多个字段的正确句子是什么
我会使用 *_in
匹配器:
curl -X GET -G 'http://localhost:3000/api/v2/products' -d 'q[barcode_in][]=7610200237576' -d 'q[barcode_in][]=7616800205113'
注意 _in
而不是 _eq
和空括号 ([]
)
使用 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.
搜索(和/或)多个字段的正确句子是什么我会使用 *_in
匹配器:
curl -X GET -G 'http://localhost:3000/api/v2/products' -d 'q[barcode_in][]=7610200237576' -d 'q[barcode_in][]=7616800205113'
注意 _in
而不是 _eq
和空括号 ([]
)